crontabでワイルドカード文字(*)を使用できますが、数字を使用できないのはなぜですか?

crontabでワイルドカード文字(*)を使用できますが、数字を使用できないのはなぜですか?

毎日10:25(正確な時間は重要ではありません)でRaspberry Pi(Raspbian Jessieを実行)でスクリプトを実行したいと思います。

この行の場合、25 10 * * * /home/pi/test.sh 結果、出力、およびアクティビティログは提供されません。

私はそれを試して* * * * * /home/pi/test.sh奇跡が起こった!うまく動作し、CMD (/home/pi/test.sh)cronログから生成され、必要な出力ファイルを生成します。

テスト目的で使用するスクリプト:

#!/bin/bash
echo `date` > /home/pi/test.txt

cronがスクリプトを実行しない理由を知っている人はいますか?

答え1

簡単にするために、タスクを次のようにリストしました。

25 10 * * * date > /home/pi/test.txt

イベントは午前10時25分に行われます。現在実行されていない場合はタイムゾーンを確認し、/etc/default/cron必要に応じて変更してください。変更後はサービスを再起動する必要がありますservice cron restart

答え2

crontabのマンページから

分、時、月フィールドが現在時刻と一致し、2つの日付フィールド(日または曜日)のうちの1つ以上が現在時刻と一致するときにcron(8)によって実行されるコマンド

次の日付フィールドのいずれかが必要です。毎日10:25に実行するには、以下を使用してください。

25 10 * * 0-6 /home/pi/test.sh

編集する:all * は毎分実行するように crontab を表示するので、これは実際には正しくありません。システムタイミングの問題であることが確認されました。システム時間をもう一度確認してください。 cronデーモンはUTCの外部で実行されます。すべてのフィールドを*に設定すると、スクリプトが機能するため、実際のロジックが機能していることがわかります。

関連情報