MacOSX
iTerm2
Cisco

複数のtelnet接続を少ない手間で操作する Tips for macOS iTerm

初回投稿は挿入画像など、Uploadできる容量に2MBの制限あるということで、この制限を100MBに引き上げるために ライトな投稿を1つしておきたいと思います。

macOS iTerm + AppleScript で 複数のtelnet接続を行い、 iTerm の tab で全ての telnet セッションを一つの windowにまとめる手法をご紹介します。
iTerm の 一つの windowでまとめることができれば、全ての tab に同時に同じ CLI 操作を行うことができるため、大量の機器に対して同時に同じ設定や確認コマンドの出力結果を把握することができるようになります。

AppleScript で macOS iTerm から tap でわけならが複数のtelnet セッションを実行するスクリプト例

set theList to {"10.X.X.X 2002", "10.X.X.X 2003"}
tell application "iTerm"
   activate
   tell current window
      repeat with curItem in theList
         create tab with default profile
         set firstTab to current tab
         tell current session of current tab
            write text "telnet " & curItem
            write text " "
            write text " "
         end tell
      end repeat
   end tell 
end tell

iTermで複数 Tab を管理する場合、以下の操作は重宝します。
shift + command + → で tab を右となりの tab に遷移
shift + command + i で、警告ウィンドウが表示された後、ブロードキャスト機能開始 (複数タブで同じコマンドを実行)

これで Console Server 経由で 複数の機器への コンソール接続もできるようになりました。
大量の機器に対しての show commandの出力結果を見たり、共有設定をしたり、 IOSの変更が容易にできるようになります。

もし、Console Server にセッションが残ってしまい 接続拒否された場合は、Console Server に入り clear line すると思いますが、
大量のコネクションに対して clear line するのも面倒なので、以下のようなスクリプトを bash で実行すると楽になります。
ex) 10.X.X.X の Console Server の 2002 - 2038の line を clear する

(for IP in {2..38}; do
   usleep 10000; echo ;
   usleep 10000; echo ;
   usleep 100000; echo clear line $IP;
   usleep 10000; echo ;
   usleep 10000; echo ;
   done;
) | telnet 10.X.X.X 23

以上です。ちょっとでも検証が楽になれば幸いです。