[tips] expect

expectを試してみた。expectってのは対話コマンドを使用するpasswdやsuやsshなどでの操作手動でやることなく自動でやってくれるソフトです

使い方としては僕が使っているcent-osでは標準では入っていなかったのでyumでinstallしました。

実際に以下のようなソースでテストしてみました

#test.sh

#!/usr/bin/expect

set timeout 2
# expect実行後、sendメッセージをターミナルに送るまでの時間?

spawn ssh user@example.com
# 上記のuser example.comは別途変える必要があります
# このコマンド実際にsshを実行することになります

expect "password:"
# ターミナルにメッセージが現れるのでpassword:が表示されるまで待機する
send "your password\r"
# ターミナルにpasswordを送信する\rは改行ですがこの場合、実質Enterと同意
expect "Last Login"
#Last Loginメッセージが現れるまで待つ
send "ls \r"
#lsの実行
send "exit \r"
#exitの実行

こんな感じで実行してみました。とりあえず対話型のコマンドの自動化の基礎的な使い方が分かったとさ