これからcrontabにすぐにコマンドを実行するように指示する方法

これからcrontabにすぐにコマンドを実行するように指示する方法

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)実行します。次に、ジョブをキューに追加します。initsystemdupstart

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

関連情報