expect是乙個用來處理互動的命令。可以將互動過程寫在乙個指令碼上,使之自動化完成。比如:ssh登入,ftp登入等都符合互動的定義。
1、安裝
# sudo apt-get install expect
2、ssh自動登陸指令碼
#!/usr/bin/expect
spawn ssh 使用者名稱@伺服器ip
expect "*password:"
send "密碼\r"
expect "*#"
interact
3、scp自動拷貝到本地指令碼
#!/usr/bin/expect
set password "密碼"
spawn scp 使用者名稱@伺服器ip:伺服器路徑 本地路徑
expect "使用者名稱@伺服器ip's password:"
send "$password\r"
send "exit\r"
expect eof
4、expect最關鍵的四個命令
send:用於向程序傳送字串
expect:從程序接收字串
spawn:啟動新的程序
interact:允許使用者互動
ssh自動登陸
突然碰到有人問ssh再傳輸金鑰時候能不手動輸入密碼,由於沒有碰到過這種情況,所以查了一下發現可以用sshpass做到。sshpass 引數 ssh命令 引數 p password 將引數password作為密碼 f passwordfile 提取passwordfile的第一行作為密碼 e 將環境變...
shell實現SSH自動登陸
公司開發使用docker,每次登陸自己開發機總要輸入ssh user name ip string,然後再確認輸入password,手快了還經常會輸錯。作為乙個懶人,肯定要找乙個取巧的方式,檢視了下ssh命令,由於它要進行一次跟伺服器的加密互動,所以沒有直接附帶密碼登陸的選項,只好作罷。前些天在同事...
shell實現SSH自動登陸
公司開發使用docker,每次登陸自己開發機總要輸入ssh user name ip string,然後再確認輸入password,手快了還經常會輸錯。作為乙個懶人,肯定要找乙個取巧的方式,檢視了下ssh命令,由於它要進行一次跟伺服器的加密互動,所以沒有直接附帶密碼登陸的選項,只好作罷。前些天在同事...