crontabのヘルプ

crontabのヘルプ

ホームサーバーにpingを送信する単純なbashスクリプトがあります。 crontabでは午前2時ごとに実行するように設定しました。その後、ping結果をメールでお送りください。

奇妙なことは、crontabで何を設定しても常に1分ごとに実行されることです。なぜこれが起こるのかご存知ですか?

0 2 * * * pinger.sh

スクリプト

#!/bin/sh
masterip="192.168.2.1"
pname="Home Server"
sender="From: Server Monitoring <[email protected]>"
subject="$pname Server Connectivity"
mail="[email protected]"

ping -c1 $masterip
if [ "$?" = 0 ];
  then
    pingmessage="$pname is reachable via LAN IP $masterip"
    pingms=$(ping -c 1 $masterip | sed -ne '/.*time=/{;s///;s/\..*//;p;}')
  else
    pingmessage="$pname is unreachable via LAN IP $masterip"
    pingms=$(ping -c 1 $masterip | sed -ne '/.*time=/{;s///;s/\..*//;p;}')
fi

{
echo "$pingmessage"
echo "with $pingms ms ping"
} | mail -a "$sender" -s "$subject" $mail

答え1

crontabのコマンドにリダイレクトを接続する場合

"Command >> /path/to/log 2>&1"

出力が表示されます。

Cronはまだ環境を選択していないため、/path/to/commandPATH環境変数を目的の検索パスに設定しない限り、コマンドパスはルートディレクトリとスクリプトのコマンドから開始する必要があります。

関連情報