ふとした時に、相手先サーバーのポートがopenしているかチェックをしたい時は結構ある。nmapは仰々しいし、そもそもインストールされていないときもある。最近のLinuxであれば、ncコマンドはまず入っているので、これを使ってPort Scanを行う。
使い方は簡単で、-z オプションを付けて実行するだけ。timeoutを1秒にするため、-w 1 のオプションも付ける。
1 2 3 4 5 6 7 8 |
$ nc -w 1 -z www.yahoo.co.jp 80 $ echo $? 0 $ nc -w 1 -z www.yahoo.co.jp 81 $ echo $? 1 |
yahooの80ポートに接続したときは、リターンコード 0 で成功。
81ポートのに接続したときは、リターンコード 1 で失敗。
相手サーバがメンテンナンスとかで、ポートが何時openするかわからないときは、cronと組み合わせて簡易的に監視なんかも簡単にできる。
1 2 3 4 5 |
$ crontab -l MAILTO="foobar@example.jp" */5 * * * * nc -w 1 -z www.yahoo.co.jp 80 && echo "yahoo agatta yo !!!" |
※& は &(アンパサンド)
ncでポートチェックして成功したら(&&)、echo で文字を出力するだけ。
mail serverが正しく設定されているサーバーなら、cronの実行コマンドの前に、MAILTO=で通知を送りたいメールアドレスを入れておけば、簡単にメールが送信できる。
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)