從網上看了幾個腳本不錯,借鑒一下
注:set timeout -1代表永不逾時
點選(此處)折疊或打開
- #!/bin/sh
- auto_login_ssh(){
- expect -c "
- set timeout -1;
- spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};
- expect *assword:*;
- send -- $1\r;
- interact;"
- }
- auto_login_ssh password user@hostname
StrictHostKeyChecking=no參數讓ssh預設添加新主機的公鑰指紋,也就不會出現出現是否繼續yes/no的提示了。
- #!/usr/bin/expect
- # 解釋器聲明
- set timeout 30
- # 設定逾時時間,機關秒
- spawn ssh [email protected]
- # spawn 是expect的内部指令,個人了解其作用就是宣告進入人機模拟開始
- expect "Password:"
- # expect也是内部指令,作用是監視終端輸出是否包含後面的内容,有則執行下面的send,沒有就等待上面設定的timeout時間
- send "123456\r"
- # 這個就是執行互動動作了,模拟人手動輸入的東東,切記最後要帶上回車符“\r”
- interact
- # 模拟結束,把控制權交還控制台,如果不加這個,就等于直接退出了
- set timeout 30
- spawn mysql -uroot -p
- expect "Enter password:"