« PostgreSQL サーチパスの設定方法 | トップページ | VB系で割り込み処理:DoEvents »

2014.03.21

telnetのオートパイロット

Windowsから使用したりする分にはTeraTermなどのマクロを組めば、相当に高度なオートパイロット(自動運転)機能を作りこむことが可能ではあるが、バッチ処理などでシェル内でtelnetを使用する必要があったり、コンソールから大量にtelnetしたり、という需要は時としてあるだろう。
以前ftpについては-nオプションで別定義のコマンド群をバッチ実行させることができることは記した。
今回はそのtelnet版である。

telnettest.sh

#! /bin/csh -f
sleep 1; echo [LoginUser]
sleep 3; echo [password]
sleep 1; echo "cd /usr/bin"
sleep 1; echo "ls"
sleep 1; echo exit
こういう内容のファイルを準備する。
ミソはechoでtelnetで使用するコマンドを書いておくということだ。
今回はlsしてるだけなのでたいした内容ではないが、ここにいろいろなコマンドを書くことが可能である。
コマンドによっては実行処理に時間がかかることもあるので、そこはsleepで調整を入れている。;で区切って1行にしているのはtelnetコマンドの可読性のためであり、もちろん改行したければしてもいい。

実際に使用する際にはこのシェルに対して、telnetをパイプで渡す。

./telnetest.sh | telnet hogehoge >> telnet.log
おまけでtelnet.logファイルに、telnetコンソールのログをすべて出力するようにしてみよう。

正直、この方法を知ったときは私は驚愕した。
「なにこれすごい」
めっちゃ重宝して使用してます。

先ほどのtelnettest.shは固定的なパイロット内容になっているが、もちろん呼び出し元のシェル内で、動的生成を行なってもいいんじゃなかろうか。

……しかし自動ログイン/自動実行処理のことを「オートパイロット」などという単語チョイスするのは、いかにもパソ通出身者らしいね、我ながら(^^;
WTERM/秀TERM を使ってましたよ、ええ。

<出典>mozukumaの技術系メモ::シェルスクリプトでtelnet自動操作

|

« PostgreSQL サーチパスの設定方法 | トップページ | VB系で割り込み処理:DoEvents »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2022/59324797

この記事へのトラックバック一覧です: telnetのオートパイロット:

« PostgreSQL サーチパスの設定方法 | トップページ | VB系で割り込み処理:DoEvents »