鯖の再起動など、何度も同じ作業をするようなものは
TeraTerm の Macro 機能を利用すると便利♪
リファレンス:TTL コマンドリファレンス
作成
TeraTerm の Macro 機能を利用するためには
TTL ファイルを作成する必要がある。
エディタ
それには TeraTerm 付属の TTLEditor を利用する。
文法
Tera Termマクロ:マクロの文法
こちらで一覧表を見つけた。
後、実際に作業してみて必要と思われたメモ。
- 数値と文字列の型変換
- 数値と文字列はちゃんと型区別がある
- 数値 → 文字列 int2str コマンドを利用
- 文字列 → 数値 str2int コマンドを利用
接続
鯖との接続には connect コマンドを利用する。
TTL コマンドリファレンス:connect
リファレンスを見ると具体的な記述法が数多く載っている。
が、繰り返し利用するものは変数に格納したいので
SOURCEFORGE.JP Magazine:Tera Termマクロ活用入門(2):リモートマシンを自在に操作する
を参考にして、プレインテキストを利用するバージョン。
hostname = ***.***.***.*** ; IPアドレス(DNSでもOK?)
username = 'hoge'
password = 'password'
;keyfile = 'path'
msg = hostname
strconcat msg ':22 /ssh /2 /auth='
strconcat msg password
strconcat msg ' /user='
strconcat msg username
strconcat msg ' /passwd="'
strconcat msg password
strconcat msg '"'
connect msg
これで接続に成功。
shell コマンドの実行
sendln(SENDLN) コマンドを利用。
shell コマンドだけでなく、パスワードなどの入力値にも対応。
つまり、コンソール画面で自分が打ち込む文言を sendln で対応。
文字列の結合
strconcat コマンドを利用。
利用法は前述「接続」の例を参照。
構文
if
VB とほぼ同じ。
elseif, endif スペースなし。
= は1つ。
if index = 1 then
sendln 'ls'
elseif index > 2 then
sendln 'pwd'
else
sendln 'cd /home'
endif
for
趙簡略化。
for index 1 5
sendln 'ls'
next
まぁ ひとまずはこんな感じ。
実行
TTLEditor にて作成した TTL ファイルをダブルクリックするだけ。
関連付け
初回は TTL ファイルと TeraTerm の関連付けが行われていない場合がある。
(インストール時に関連付けしているか否かで決まるようだ)
その場合は、ダブルクリック後に
TeraTerm のインストールディレクトリにある
ttpmacro.exe に関連付ける。
参考元サイト:SOURCEFORGE.JP Magazine Tera Termマクロ活用入門(1):各種ログインを自動化する
参考元サイト
SOURCEFORGE.JP Magazine:Tera Termマクロ活用入門(1):各種ログインを自動化する