expect で自動ログインしパスワードを変更するスクリプト
expect で自動ログインしパスワードを変更するスクリプトのサンプル
- 引数1: 接続先
- 引数2: 現在のrootパスワード
- 引数3: 新しいrootパスワード
#!/bin/shPR='(#|\\$) $' # regular prompt
expect -c "
set timeout 10
spawn ssh sysuser@$1
while (1) {
expect timeout { break } \"(yes/no)?\" { sleep 1;send \"yes\r\" } \"word: \" { sleep 1;send \"sysuser\r\";break }
}
expect -re \"$PR\"; sleep 1; send \"su -\r\"
expect -re \":\"; sleep 1; send \"$2\r\"
expect -re \"#\"; sleep 1; send \"passwd root\r\"
expect -re \"word:\"; sleep 1; send \"$3\r\"
expect -re \"word:\"; interact -o -nobuffer successfully return
expect -re \"#\"; sleep 1; send \"exit\r\"
expect -re \":\"; sleep 1; send \"exit\r\"
"