7日ごとにデータベースプログラムを実行する "/etc/crontab"コマンドがあります。ところで、このコマンドは2週間前に他のユーザーが言及したものを見ました。私はすぐにこの行のコメントを外し、今日このコマンドがcrontabによって実行されていないことを見ました。
なぜ? /etc/init.d/cron restartを再起動するとcrontabが再起動し、コマンドラインを見ると7日ごとにコマンドを実行するように求められます。このプログラムはいつ始まりますか?サービスクローンが再起動したらすぐに起動しませんか?そうではないようです。
今は7日プログラムがとても期待されます。今夜、crontabは7日間プログラムを開始したいと思います。どうすればいいですか?
スクリプトは次のとおりです。
0 0 */7 * * root source /opt/db_maintain/run.sh
答え1
* / 7は「今から7日ごと」を意味しません。 「7の倍数である毎日」を意味します。したがって、#day モジュールで 7 == 0 → 該当月の 7 日、14 日、21 日、28 日の場合、コマンドが実行されます。
Cronのフランス語wikiページには、次のような多くの例があります。 http://fr.wikipedia.org/wiki/Cron#Examples
Fcronも使用できます。 http://fcron.free.fr/
答え2
今日は水曜日です。 cronが毎週木曜日の真夜中にコマンドを実行するようにするには、crontabに次のように入力します。
0 0 * * 4 root /path/to/command
答え3
at
時間特性(「現在+ 7日」など)に基づいてジョブをスプールするサービス/デーモンをインストールすることもできます。まず(スクリプトなどを介してatd
)実行します。次に、ジョブをキューに追加します。init
systemd
upstart
at -f /path/to/command now + 7 days
今から7日以降
at 2am tomorrow
明日午前2時に実行されるコマンドを読んでください。 1〜2回テストしてから機能しないことを確認するには、7日間待つ必要があります。努力するnow + 1 minutes
7日ごとに実行する1つの方法は、at
バッチの前に別のコマンドを追加することです。
cat >~/bin/weekly-job.sh << AT
at -f ~/bin/weekly-job.sh now + 7 days
~/bin/database-job.sh
AT