毎日TeraTermでサーバに接続して作業するときに、毎回IP、ユーザ名、パスワードを入力するのはめんどくさい。
TeraTermのマクロを1度つくれば、あとはダブルクリックで簡単に接続できる。
・簡単パターン(IP、ユーザ名、パスワード固定)
connect '192.168.110.101:22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi123'
上記をファイル名.ttlで保存し、ttpmacro.exeで開けばOK!
※ダブルクリックで開かない場合は、「拡張子とプログラムの関連付け」を行ってください。
・秘密鍵を使う場合
connect '192.168.110.101:22 /ssh /2 /auth=publickey /user=kohshi /passwd=kohshi123 /keyfile=C:\pathtokey\private_key'
・接続した後、特定のコマンドを実行したい場合
(例)suしてcd
connect '192.168.110.101:22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi123'
wait "$"
sendln "su"
wait ":"
sendln "kohshi"
wait "#"
sendln "cd /var/www/html/"
waitで特定の文字列を待ち受けて、sendlnでコマンド実行です。
・コメントアウト
;一行コメント
/*
複数行コメント
*/
・ユーザ入力を受け付けたい場合
(例)接続先IPを入力させる
inputbox 'IPを入力してください' 'IP入力'
HOSTADDR = inputstr
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND
inputboxでダイアログを出して入力受付、入力された値はinputstrに入っている。
「strconcat 文字列 文字列」で文字列を結合する。
・選択肢から選びたい場合
(例)接続先IPを選ばせる
strdim HOSTNM 2
HOSTNM[0] = '192.168.0.101'
HOSTNM[1] = '192.168.0.102'
listbox '接続先IPを選択して下さい' '接続ホスト選択' HOSTNM
if result >= 0 then
HOSTADDR = HOSTNM[result]
else
end
endif
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND
(例)接続先名から接続先IPを選ばせる
strdim HOSTNM 2
HOSTNM[0] = 'dev'
HOSTNM[1] = 'stg'
strdim HOSTIP 2
HOSTIP[0] = '192.168.0.101'
HOSTIP[1] = '192.168.0.102'
listbox '接続先を選択して下さい' '接続ホスト選択' HOSTNM
if result >= 0 then
HOSTADDR = HOSTIP[result]
else
end
endif
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND
strdimで配列を宣言して、値を入れる。
listboxに配列を渡すと、選択した値がresultに入る。
キャンセルされた場合はresultに−1が入る。
・ログを保存
FILEPATH = 'C:\Users\kohshi\Desktop\tera.log'
logopen FILEPATH 1 1
logclose
logopen FILEPATH 1 0 ;2つめを0にすると上書き。1だと追記。
logcloseがなくてもteratermを閉じればログも閉じるので、途中でログだけ閉じたいときに使う。
・ファイル名に日付を入れたい
getdir FILEPATH
strconcat FILEPATH '\'
getdate FILENAME '%Y%m%d-%H%M%S.log'
strconcat FILEPATH FILENAME
logopen FILEPATH 1 0
getdirでマクロがあるディレクトリを取得。
getdateで変数FILENAMEに指定したフォーマットで文字列を入れる。
strconcatで変数FILEPATHに足していく。