shell腳本 expect 命令的使用

expect使用

expect 是個不錯的命令,能夠完成一系列的自動化命令操做。對每次ssh登陸輸入密碼這麼麻煩的時候使用深有體會。多數固定的命令執行,也能夠經過expect來操做執行,很是的方便。nginx

以下例子,咱們經過expect來完成一系列的操做有讀取實時日誌bash

#!/usr/bin/expect

spawn ssh troot@127.0.0.1
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。ssh

expect個人理解有點相似if 的判斷spa

send 是執行到某一步要輸入的鍵位日誌

interact 保證登陸不退出,沒有的話執行完成即退出code

對於執行可能產生的延遲部分我用timeout來延遲執行命令自動化

bash expect 一塊兒用

#!/bin/bash

/usr/bin/expect<<-EOF
spawn xxxx
set timeout 10
expect "password"
interact
expect eof
EOF

ps -ef |grep xxx
相關文章
相關標籤/搜索