expectコマンドで入力待ち処理を自動化
VPNの接続にopenvpn使っていて、起動スクリプトでユーザー名とパスワードを求められるのめんどくさい。。。
ってことでexpectで自動化。
まずはexpectをインストール
$ sudo apt-get install expect
実行スクリプトを作成
$ vim openvpn.exp $ cat openvpn.exp #!/usr/bin/expect set sudopass "XXXXX" set username "XXXXX" set password "XXXXX" spawn sudo /etc/init.d/openvpn start expect "\[sudo\]*" send -- "$sudopass\n" expect { "Autostarting VPN 'ここには/etc/openvpn/*.confの*の部分'" { expect "Enter Auth Username:" send -- "$username\n" expect "Enter Auth Password:" send -- "$password\n" } } interact
とりあえずこれで動く。
でもそもそもopenvpnの設定で最初から設定できないのかな、とは思いましたw
これを使ってstartかstopかrestartくらいは管理するようなスクリプトを書こうかな。