回答:
トレバーが正しいにもかかわらず、私はここで別の答えを出しています。
cron @weekly
キーワードは、彼が述べたとおりに機能します。ただし、ほとんどのディストリビューションrun-parts
は、cronのキーワードを使用しない独自のスケジュールされたcrontabファイル(毎時、毎日、毎週、毎月)を実行するために使用します。
たとえば、Ubuntuには、/etc/cron.weekly
cronジョブごとに個別のファイルを含むがあります。
これは一般に /etc/crontab
Ubuntuのkarmic 9.10リリースには、次のものが含まれています。 /etc/crontab
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
したがって、Ubuntuの毎週のcrontabは日曜日の午前6時47分に実行されます
注:crontab実装のマンページを探す場合man 5 crontab
は、単にの代わりに使用したいとしますman crontab
。後者は、crontabコマンドの構文のみを提供します。前者はcrontab実装の詳細を提供します。
So the weekly crontab in Ubuntu is run at 6.47am on Sunday
。これは間違っているtest -x /usr/sbin/anacron ||
コマンドの一部は、ONLYの右側にあるものを実行するために言う||
ならば「は/ usr / sbinに/ anacronの」実行可能ではないか、または存在していない、まだそれはので、ないrun-parts
実際によって実行されることはありませんcron
!むしろ、anacron
それを処理する必要がありますよね?"/ etc / anacrontab"のAanacronの表は、これを毎週示しています:7 10 cron.weekly run-parts --report /etc/cron.weekly
これは、毎週のジョブが7日ごとに実行され、10分の遅延があることを意味します。
答えはcrontab自体のマンページにあります(man 5 crontab
):
次の特別な時間指定「ニックネーム」がサポートされています。これは、5つの初期時間および日付フィールドを置き換え、先頭に「@」文字を付けます。
@reboot : Run once after reboot. @yearly : Run once a year, ie. "0 0 1 1 *". @annually : Run once a year, ie. "0 0 1 1 *". @monthly : Run once a month, ie. "0 0 1 * *". @weekly : Run once a week, ie. "0 0 * * 0". @daily : Run once a day, ie. "0 0 * * *". @hourly : Run once an hour, ie. "0 * * * *".
つまり、0 0 * * 0
日曜日(平日0)である限り、00:00(任意の月の任意の日付)です。