Pythonで開発している最中なので、この話題は現場でもありましたが3000ページ超ってラクダ本以上じゃないですか1ライブラリだけで1800ページとか鬼!これのEPUB版をiPod touchにいれてiBooksで再生しようとしたらほぼ固まってるし、PDFにしても辛かった。。。いつかは読むぞw
expectでssh自動接続
実はMacのネタですがLinux枠でw
普段使うノートがMacになったので急に障害連絡が来た時にメンテ可能な端末はMacしかない。でもBSDベースなので親和性が高く楽にできると何もせず構えてたら結構面倒だったw
これまではTeratermのマクロを準備していて例えば10台のサーバに一気にログインする必要があったりするときマクロファイルをダブルクリックでガンガンログインしていたのだが、MacにはTeratermないし同様の機能をどうするかなっと検索。
#!/usr/bin/expect
set timeout 1
spawn ssh root@192.168.56.101
expect “password: “
send “111111n”
expect “[.*]$ “
send “ls -ln”
expect “[.*]$ “
interact
結論としてexpectを利用してsshと対話してしまえば良い事が分かった。これならLinux上でもそのまま使える。但し二段階ログインした上でその先での操作が出来るかどうかについては確認していないが無理そうな気がする。
これはシェルスクリプトな感覚で作成します。違いは一行目にshではなくexpectを定義している点とその後のコマンド送信がteratermマクロっぽい感じになっていること(多分expectの方が先だと思いますがw)
spawnの行でsshコマンドを書き秘密鍵を利用するならここにオプションも一緒に書けば良いと思う(秘密鍵を使う場合はパスワード暗記しているケースが多いのでexpectの世話にはなり難いと思うが)
expectは待ち受ける文字列、ここではpassword: とプロンプトを待っている記述がある。
そしてsendがターミナルに送信するコマンドです。
最後のinteractはログインしたままの状態で終了するおまじない。これが無いとSSH接続を終了するので用途によって付けたり付けなかったりします。
Pythonが殿堂入り3年ぶり2回目
TOIBE Softwareの発表ということで、今まで知らなかったのですがこれまでの殿堂入りした言語みると納得。これからはRubyかPythonって感じかな?PHPとはユーザ層が少し違うのでライバルはJavaだと思ってみたり。