crontabスクリプトの実行

crontabスクリプトの実行

通信切断自動再起動を実行しようとしましたが、オンラインでこのスクリプトを見つけました(これを行う人を祝福します)。スクリプトは

ping -c4 www.site.com > /dev/null

if [ $? != 0 ] 
then
  sudo /sbin/shutdown -r now
fi

したがって、このスクリプトは正しく機能します。私がしたいのは、同じことをする別のスクリプトを追加することです。しかし、pingを変更するだけです。コンテンツ

ping -c4 192.168.1.5 > /dev/null

if [ $? != 0 ] 
then
  sudo /sbin/shutdown -r now
fi

/usr/local/bin/最初のスクリプトの通信不足ファイル名は次のようにこのスクリプトを保存し、/usr/local/bin/commsloss.sh2番目のスクリプトのファイル名は次のとおりです。/usr/local/bin/serverloss.sh

この2行を追加しましたcrontab -e

*/5 * * * * /usr/bin/sudo -H /usr/local/bin/commsloss.sh >> /dev/null 2>&1

*/10 * * * * /usr/bin/sudo -H /usr/local/bin/serverloss.sh >> /dev/null 2>&1

その後、サーバーをシャットダウンして再起動することを確認しようとしましたが、うまくいきませんでした。

どんな提案がありますか?

これが可能か、それとも2つではなく1つのスクリプトしか持てないように、これが正しい構文であるかどうか疑問に思います。

ping -c4 www.site.com > /dev/null || ping -c4 192.168.1.5 > /dev/null

答え1

現在サーバースクリプトが機能していない理由はわかりませんが、これによりor演算子を使用できます。

#!/bin/bash
ping -q -c4 www.site.com > /dev/null
siteup=$?
ping -q -c4 192.168.1.5 > /dev/null
ipup=$?
if [[ $siteup != "0" || $ipup != "0" ]]; then
  sudo /sbin/shutdown -r now
else
  :
fi

関連情報