SEの仕事をしていると、Tera Termからサーバにリモートログインすることがよくあります。
サーバの台数が多いとユーザ名やパスワードを入力するのに手間がかかるので、自動化して手間が省けます。
また、間違ったサーバにログインすることを防止できるので一石二鳥です。
Tera Termのバージョンによっては動かない場合もあるので使用に関しては自己責任です。
SSHでサーバにログイン
;###ログイン情報
username = 'next'
password = 'next'
hostname = '192.168.0.1'
;###ログイン操作
msg = hostname
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg password
connect msg
wait '$' '#'
ここからは、自分の備忘録です。
サーバログイン後の操作です。
メッセージ送信
topコマンドを実行
sendln 'top'
メッセージ受信①
受信後、メッセージを’0’と比較、trueならばresultに0が入って、メッセージボックスが表示される
recvln
strcompare inputstr '0'
if result == 0 then
messagebox 'true' 'title'
endif
メッセージ受信②
10秒以内にプロンプトが表示されなかったら終了
timeout = 10
wait '$' '#'
ファイル送信
ローカルのC:\tmp\test.txtファイルをリモート先の/tmp/配下に送信する
ファイル送信中のプロセスの終了でファイル転送完了とする
sourfile = 'C:\tmp\test.txt'
destfile = '/tmp/'
scpsend sourfile destfile
do
sendln 'ps -ef |grep -v grep |grep -c scp'
mpause 1000
recvln
recvln
strcompare inputstr '0'
loop while result != 0
ファイル受信
リモートにある/tmp/test.txtファイルをローカルのC:\tmp\配下に受信する。
ファイル受信中のプロセスの終了でファイル転送完了とする
changedir 'C:\tmp\'
scprecv '/tmp/test.txt'
do
sendln 'ps -ef | grep -v grep | grep -c scp'
mpause 1000
recvln
recvln
strcompare inputstr '0'
loop while result != 0;
より詳しく知りたい方へ
Tera Term ヘルプ 目次
https://ttssh2.osdn.jp/manual/4/ja/
MACRO for Tera Term
https://ttssh2.osdn.jp/manual/4/ja/macro/
Tera Termソースコード解説
https://ttssh2.osdn.jp/manual/4/ja/reference/sourcecode.html