FC2ブログ

expectコマンドによる自動化

sshなどのコマンドはヒアドキュメント(command << hoge.txt)を利用して自動化することができない。

ヒアドキュメントはテキストファイルに書かれている内容を読み込ませてプログラムを進ませる、というもの。
sshはちょっと入力形式が違う。

そんなわけでexpectコマンドを利用する。

#!/usr/bin/expect

if {$argc!=1} {
puts "Usage: $argv0 port"
exit
}

set PORT [lindex $argv 0]

set timeout 10
spawn ssh hoge@hoge.com
expect "Password:"
send "ぱすわーど\r"
interact

ここで、$argv0はプログラム名、[lindex $argv 0]が引数1を表す。
[lindex $argv 1]ではなく0が引数1を表していた。

調べてたところ、どうもspawnはexpectの内部コマンドっぽい
そんなこととはつゆ知らずspawnの導入を調べて不毛に時間を費やしたorz


とりあえずこれを利用するとめちゃくちゃ管理が楽になる。
パスワードの管理は別問題だけど。

プログラム内にパスワード書くと他人に見られたときに大変なので権限は変えておくべき。
スポンサーサイト



コメント

非公開コメント

中野梓
プロフィール

dhythm

Author:dhythm
関西に住む大学院生。専攻は宇宙物理学。
専攻が宇宙物理学の理学修士。現在は社会人。
Mac, Windowsを併用。Linuxでサーバーマシンをたてる計画中。
使用言語 : C, Java, COBOL, Perl, Python, Object-C

社会の荒波にもまれながら、日々勉強中。

アクセスカウンター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード