geeksforgeeks crontab ページでは、次の cronjob を理解できません。
30 08 10 06 * /home/maverick/full-backup
6月10日午前8時30分に進行されることがわかっていますが、最後の時間のため恥ずかしいです。これは6月10日の週に毎日実行されることを意味しますか?または曜日がわからないので、*はそれが終わる日を意味します。
誰かが明確にできますか?
答え1
通常、*
週の列に表示される曜日は、このタスクのスケジュールには関係ありません。これは毎年6月10日に行われます。もしあなたならした曜日のエントリ(「水曜日」など)がある場合、タスクは6月10日と6月の毎週水曜日に発生します。man 5 crontab
どのシステムでジョブをスケジュールしても、実装が異なる可能性があるため、お問い合わせするのが最善ですcron
。
また、マンページは、以下のようにあいまいまたは読みにくい場合があります。
分、時、月フィールドが現在時刻と一致し、2つの日付フィールド(日または曜日)のうちの1つ以上が現在時刻と一致する場合、cron(8)によってコマンドが実行されます(「注意」を参照)。以下)。
そして:
注:コマンドが実行される日付は、日付と曜日の2つのフィールドで指定できます。両方のフィールドが制限されている場合(つまり*ではありません)、両方のフィールドの1つが現在の時刻と一致するときにコマンドが実行されます。たとえば、
30 4 1,15 * 5
毎月1日と15日、毎週金曜日の午前4時30分にコマンドが実行されます。
IMO、「両方のフィールドが制限されている場合」制限は実際には少ないあるフィールドは制限され、他のフィールドはワイルドカードとして扱われる場合と比較して制限されます。
比較する:
30 08 10 06 * /home/maverick/full-backup
上記の作業は6月10日にのみ行われます。
30 08 * 6 Wed /home/maverick/full-backup
上記の作業は6月毎週水曜日に行われます。
30 08 10 06 Wed /home/maverick/full-backup
上記の作業は6月の毎週水曜日と6月10日に行われます。