Ciscoのルータconsoleでping疎通試験をする、それ自体はCCNAの試験を受けようとした人やちょっとIOSに触れた方ならどう操作するか、誰でも知っていると思います。では例えば/24全体に対してping試験をしたくなった時どうしましょう?
例えば使っているTerminalソフトがTeraTerm等マクロが使える物でしたらそれで解決すればいいと思いますが、万が一それも無かったりした場合にちょっと頭の隅に残ってると便利かもしれません、それがtclshコマンド。
どうしようかなーと思っていた時、会社の隣の席に座っているCCIE保有者からこんな言葉を囁かれました。
「tclshってコマンド知ってますか?」
いえ、まったく知りませんでした。何だろうと考えていると tcl + sh かな?と気づきました。そのままでした。そう、IOSの上でtclのscriptを動かせると言うのです。ひょえー
そこで実践。
cisco# tclsh
cisco(tcl)# for {set i 1} {$i <= 254} {incr i} {ping ip 192.168.0.$i repeat 1}
ふぉぉぉぉぉ、がっつり動作しました。これで 192.168.0.0/24 に ping を1回ずつ打ち始めます。今回はforで記述しましたがwhileでもいいでしょうね。
ちょっと解説をすると
- {set i 1}でまず i に 1 を代入します。
- {$i <= 254} で $i が254になったらループを終了する終了条件です
- {incr 1} で i を1増分します。
- {ping …} ここはIOSのpingコマンドです。$i に 1〜254 が代入されます。
ちょっと目から鱗でした。

