TeraTermのマクロデビューしました。


TeraTermのマクロ機能はご存知でしょうか。
定型作業を自動化できる便利機能です。

何故、今更マクロを使うことになったかと言いますと・・・
20以上の拠点に入り回線を変更するという案件がありました。
ざっくりとした作業内容ですが、

  1. 事前ログ取得
  2. 設定変更
  3. 疎通試験
  4. 事後ログ取得
2.の設定変更以外は、どの拠点もほぼ同じコマンドであったため、
マクロを使えれば作業が飛躍的に楽になるなという考えからマクロを作成することに。
一部抜粋という形になりますが、
実際に作成したマクロ内容を紹介します。

ログイン情報定義
HOSTNAME = 'ホスト名'        
LOGIN_PW = 'ログインPW'   
ENABL_PW = '特権PW'           

ボーレート定義
BAUDRATE = '9600'
※環境によって数値は合わせる

コンソールログイン
①COMポートの状態を1~100まで確認する 
for PORT_NUM 1 100 

②整数値を文字列に変換 
  int2str COM_PORT PORT_NUM

③コマンド組立て 
  COMMAND = '/C='                                
  strconcat COMMAND COM_PORT 
  strconcat COMMAND ' /BAUD='     
  strconcat COMMAND BAUDRATE  

④接続 
  connect COMMAND 

⑤接続確認 
  if result == 2 break 
next                                

ログイン
sendln '' 
do
    wait 'Password:' '>' '#'
    if result == 0 then                     ; 何も表示されない場合
        end
    elseif result == 1 then             ; [Password:]が表示された場合
        sendln LOGIN_PW
        wait '>'
        sendln 'administrator' 
        wait 'Password:' 
        sendln ENABL_PW
    elseif result == 2 then             ; [>]が表示された場合
        sendln 'administrator' 
        wait 'Password:' 
        sendln ENABL_PW
    endif
loop while result == 2                  ; [#]が表示されたらLoopを抜ける

ログのファイル名設定と記録開始
ログを保存するパスの指定
getdir LOG_DIR_PATH
Strconcat LOG_DIR_PATH '\'
Strconcat LOG_DIR_PATH HOSTNAME
Strconcat LOG_DIR_PATH '_log\'

ログ名に利用する日付情報を取得する
Getdate Str_Getdate
Strcopy Str_Getdate 1 4 Str_Year
Strcopy Str_Getdate 6 2 Str_Mon
Strcopy Str_Getdate 9 2 Str_Day

ログ名に利用する時刻情報を取得する
Gettime Str_Gettime
Strcopy Str_Gettime 1 2 Str_Hour
Strcopy Str_Gettime 4 2 Str_Min
Strcopy Str_Gettime 7 2 Str_Sec

ログ名を生成する
LOG_PATH = LOG_DIR_PATH
Strconcat LOG_PATH '\'
Strconcat LOG_PATH '3-1_N101-109'
Strconcat LOG_PATH '-'
Strconcat LOG_PATH HOSTNAME
Strconcat LOG_PATH '_'
Strconcat LOG_PATH Str_Year
Strconcat LOG_PATH Str_Mon
Strconcat LOG_PATH Str_Day
Strconcat LOG_PATH '_'
Strconcat LOG_PATH Str_Hour
Strconcat LOG_PATH Str_Min
Strconcat LOG_PATH Str_Sec
Strconcat LOG_PATH '.txt'

ログの記録を開始する
logopen LOG_PATH 0 1

実行コマンド
sendln ''
    sendln 'show ip rip table'
    pause 10
    wait  '#'
  ・
  ・
  ・
※必要なコマンドを追記していく
※機器によっては"wait '#'"が効かないため、pauseコマンドで次行コマンド実行までの間隔(秒数)を調整する。

●ログの記録終了とマクロ終了
logclose    
End             

1~2拠点くらいの作業であれば、マクロを作らなくても良いかなと思いますが、
今回は20以上の拠点で作業ということもあり、流石に作成しました。

実際、マクロを作成して使ってみた感想ですが、
とても便利ですね。
取得したログチェックに時間を多く使える点もメリットと感じました。

デメリットですが、もちろん事前にマクロを作りこむという手間がかかる点ですかね。
今は生成AIもありますので、AIがないときと比べれば楽だと思いますが。。。

今後の展望としては、楽にマクロを作るということにフォーカスを当てていき、
また共有できたらと思います。




コメント

このブログの人気の投稿

ProxmoxでLet's Encryptを使用した証明書セットアップをやってみた

AIと共に「考える」エンジニアに!

ルーティングって何で必要で、何してるの?を React Routerで理解する