1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

/28の全ホストにpingを打つワンライナーシェルスクリプト

Posted at

個人用の備忘メモ

Linuxの知識を付けたかったのと、仕事で役立ちそうだなと思ってシェルワンライナーの本を読み始めました。どんな本かは以下のリンクからわかると思います。やっていて楽しいですよ!

やったこととちょこっと解説

題名の通り/28のホストへの到達性を確認したかったので、以下のワンライナーでログを取りました。「seqを使って第四オクテットを出力。xargsを使ってpingコマンドの引数に@で渡して、連続でpingを実行。出力はping.logを作って保存。」ということをしています。

ping1.sh
seq 49 63 | xargs -I@ ping 165.254.119.@ -c 3 > ping.log

xargsの引数はコマンドの部分も含めてスペースだけで区切って書けるので便利ではありますが、慣れていないと何をやっているのか読みづらい気はします。

他のやり方と失敗例

「seqとawsで実行したいコマンドを作り、bashに渡して実行する。」というやり方もできます。メタプログラミングというやつです。

ping2.sh
seq 49 63 | awk '{print "ping 165.254.119." $1 " -c 3"}' | bash > ping.log

以下は失敗例です。xargsでは$1などのフィールドの引数は使えないんでしたっけ。。pingが実行できませんでした。

ping3.sh
seq 49 63 | xargs ping 165.254.119.$1
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?