Teratermマクロで作業効率化
この記事を読むと以下のメリットがあります。
- Teratermをより効率的に使える
- オペレーションマニュアルの簡素化
- 定期作業上のミスを減らせる
弊社のビルでは年一回の法定停電による全館停電があります。
法定停電の度に、社内システムが稼働しているLinuxサーバのシャットダウン作業を
客先常駐している技術者が帰社して対応しておりました。
しかし、コロナやテレワーク等の影響によりこの対応が難しくなることも考え
社内メンバーの誰でも、Linuxの知識がなくても対応できるよう
Teratermマクロ化する事により、エンターキー1発で対応できるようにしました。
弊社では、「マニュアルは誰でも(知識や経験問わず)操作が行えるものにする」という文化があります。
しかし、どんなに分かりやすいマニュアルであって、操作ステップが多いほどミスを生みやすいと考え
決まり切った作業をツール化する事によって操作ステップを減らしました。
という事で、Teratermマクロのサンプル&実行手順です。
こちらは、IP指定したサーバにログインし、シャットダウン(電源オフ)を行うものになります。
※:既にPCにTeratermがインストール済みという事で進めます。
1)まず、ttl(テラタームマクロ)ファイルを作成します。
今回は「自動シャットダウン.ttl」としました。
2)コード
——————————
;; SSH接続コマンド生成
COMMAND = ‘(接続先のIP)’
strconcat COMMAND ‘:22 /ssh /2 /auth=password’
strconcat COMMAND ‘ /user=(ユーザID)’
strconcat COMMAND ‘ /passwd=(ログインパスワード)’
;; 接続
connect COMMAND
;; 判定:失敗時はメッセージを表示し終了
if result <> 2 then
messagebox ‘teraterm macro could not connect to this Server.’ ‘Connection Error’
end
endif
;; 判定2:30秒以内にプロンプトが帰ってこなければ終了
timeout = 30
wait ‘$’ ‘#’
if result=0 then
end
endif
;; ホスト名表示
sendln ‘hostname’
wait ‘$’ ‘#’
;; シャットダウン処理
sendln ‘sudo shutdown -h now’
wait ‘Password:’
sendln ‘(パスワード)’
wait ‘$’ ‘#’
unlink
——————————
プログラミング経験がある方はすぐに理解されるかとは思いますが
基本的に
「sendln」でコマンドを入力し
「wait」でコマンドの戻りを待っています。
ファイルを保存しましたら・・・
3)実行プログラムの関連付けを行います。
Teratermインストールディレクトリにある
ttpmacro.exeに関連付けを行います。
アイコンがTeratermマクロのものになりました。
これでエンターキーやダブルクリック1発で作業が完了しますね。
応用すれば、踏み台が必要なサーバへの自動ログイン等にも使えます。
開発、インフラのみなさん、ご活用ください。