« そろそろ拘留期限 | メイン | アルゴリズム研究『カラーボックスで作る本棚』 »

UNIX

telnet自動ログイン

APC製 遠隔電源コントローラ APC AP9211 をプログラムから制御する試み。
WEBブラウザ、RS232C、telnetによるインターフェースが用意されている。
今回は、linux の bash から telnet してみる...▼
●telnetクライアントのインストール。
$ sudo yum -y install telnet
●telnetへパイプするシェル AP9211.sh
#!/bin/bash
(
sleep 1;echo userid
sleep 1;echo password
sleep 1;echo ls -l
sleep 1;echo exit
) | telnet 192.168.0.1
ところが、linux の telnetサーバーには成功するが AP9211 の telnetサーバーには失敗する。
echo コマンドで改行?が伝わらない。まるでWindowsのCR+LFを想定しているような振る舞い。
#!/bin/bash
eol=$'\r'$'\n'
(
sleep 1;echo "userid${eol}"
sleep 1;echo "password${eol}"
sleep 1;echo "ls -l${eol}"
sleep 1;echo "exit${eol}"
) | telnet 192.168.0.1
これで成功。
expectをインストールすればよりインテリジェンスになるかもしれない。
クーロンを使えば、最近見かけなくなった電源タイマーのようなことが出来る。
https://github.com/remixgrjp/ap9211
で公開。

トラックバック

このエントリーのトラックバックURL:
http://www.remix.gr.jp/cgi/mt/mt-tb.cgi/7466

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)