expect spawn 實現遠端一鍵部署

2021-07-15 16:15:28 字數 882 閱讀 1659

為了**的安全,一般伺服器是不會安裝ftp的,更不會針對windows客戶端安裝類似rz等軟體。一般都是 scp,scp是有security的檔案copy,基於ssh登入。那怎麼能夠實現自動上傳和執行檔案呢。那就必須使用expect的spawn了。

expect是乙個免費的程式設計工具語言,用來實現自動和互動式任務進行通訊,而無需人的干預。expect的作者don libes在2023年 開始編寫expect時對expect做有如下定義:expect是乙個用來實現自動互動功能的軟體套件 (expect [is a] software suite for automating interactive tools)。使用它系統管理員 的可以建立指令碼用來實現對命令或程式提供輸入,而這些命令和程式是期望從終端(terminal)得到輸入,一般來說這些輸入都需要手工輸入進行的。 expect則可以根據程式的提示模擬標準輸入提供給程式需要的輸入來實現互動程式執行。甚至可以實現實現簡單的bbs聊天機械人。

舉個例子

#!/usr/bin/expect

/usr/bin/expect <<-eof

spawn /usr/bin/ssh root@$1

expect "*password:"

send "$2\r"

expect "*]#"

expect "*]#"

send "exit\r"

此指令碼通過輸入ip位址和密碼進行登入,並進行執行自動部署指令碼。

如果是兩個伺服器之間進行執行。比如打包伺服器和正式伺服器需要進行檔案的上傳和部署,可以使用金鑰進行檔案的上傳和登入部署。

命令如下

ssh-keygen -t rsa

scp ~/.ssh/id_rsa.pub root@目標ip:/root/.ssh/authorized_keys

mysql 遠端連線 明文 MySql實現遠端連線

1 進入mysql,建立乙個新使用者root,密碼為root 格式 grant 許可權 on 資料庫名.表名 to 使用者 登入主機 identified by 使用者密碼 grant select,update,insert,delete on to root 192.168.1.12 ident...

mysql實現遠端連線

可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 mysql 資料庫裡的 user 表裡的 host 項,從 localhost 改稱 mysql u root pvmwaremysql use mysql mysql up...

CLion 實現遠端除錯

clion 是 jetbrains ide 全家桶產品之一,可以用來開發 c c 專案,而 gdb 則可以用來對 c c 程式進行除錯。作為一款偵錯程式,gdb 為程式開發人員提供了強大的除錯功能,但卻需要使用命令來執行除錯操作,操作起來不是很方便。有關 gdb 的使用,可以參考文章 gdb 除錯 ...