shell指令碼 expect 命令的使用
阿新 • • 發佈:2019-07-29
expect 是個不錯的命令,可以完成一系列的自動化命令操作。對每次ssh登入輸入密碼這麼麻煩的時候使用深有體會。多數固定的命令執行,也可以通過expect來操作執行,非常的方便。
如下例子,我們通過expect來完成一系列的操作有讀取實時日誌
#!/usr/bin/expect spawn ssh [email protected] set timeout 30 expect "password" send "123456" send "\n" set timeout 5 expect “:~>” send "sudo su -" send "\n" expect "~ #" send "tail -200f /var/log/nginx/access.log" send "\n" interact
spawn是進入expect環境後才可以執行的expect內部命令,那麼首先確定環境安裝了expect。
expect我的理解有點類似if 的判斷
send 是執行到某一步要輸入的鍵位
interact 保證登入不退出,沒有的話執行完成即退出
對於執行可能產生的延遲部分我用timeout