たとえば、特定のアドレスにpingを送信するスクリプトを作成しようとしていますが、Google.com
接続が失われた場合はログをファイルに書き込みます。私は何をすべきかわかりません。例:
ping goodle.com
接続している場合はPingだけを送信してください
接続されていない場合は、ファイルにログを書き込みます。
答え1
最も簡単な形式で次のことができます。
ping -c2 google.com 2>&1 >/dev/null || echo "$(date) host not available" >> /tmp/mylogfile
ping
pingが可能な場合は通常成功(終了コード0)を返し、そうでない場合はゼロ以外のコードを返すため、2番目の場合にのみエコーが実行されます。 (-c2
pingを2回だけ意味し、ping
通常は停止するまで試し続けます。)
答え2
if ! ping -c2 google.com >/dev/null 2>&1; then
printf '%s\tgoogle.com not reachable\n' "$(date)" >>logfile
fi
これにより、ping
Googleに2回pingを試みます。失敗すると(ping
ゼロ以外の終了ステータスを返す)、ログファイルにメッセージが追加されます。