1. 程式人生 > >linux expect自動切換使用者

linux expect自動切換使用者

背景

我需要寫這樣一個指令碼

但是又不想在切換使用者的時候手動輸入密碼,於是我找到了expect這樣一個東西。它可以實現自動向伺服器中輸入的功能。

安裝

我用的是這個
https://www.cnblogs.com/daojian/archive/2012/10/10/2718390.html
安裝的時候注意命令中的版本號要與自己的保持一致。

編寫指令碼

vi test.sh

#!/usr/expect/bin/expect -f
set timeout 1
spawn su - root

expect ":"
send "密碼\n"
expect "#"
send "ps -ef|grep xxxxxxxxx|grep -v grep|awk '{print \$2}'|xargs kill -9\r"
send "sh /xxx/xxx.sh\r"
send "exit\r"
send "cd /home/xxx\r"

set timeout 1 是設定超時時間。預設是10秒,它會在10秒後自動完成輸入操作。我將它設定成了1秒

set timeout 1

設為 -1 時為不限時。

set timeout -1

執行
/home/xxxx/test.sh