anacronを使用して実行をスケジュールする方法は?

anacronを使用して実行をスケジュールする方法は?

私はしばしば次の形式でスクリプトから後で二次タスクをスケジュールします。

at now + 8 hours <<< "rm -f workfile.$$ >> $worklog 2>&1 "

または

at 11pm + $(date +%M) minutes <<< "./postMarketJob.sh $orderID &> $orderID.log"

問題は私がサーバーとして使うノートパソコンやパソコンが予定された時間になると終了する場合があり、働いている決して起こらないでしょう。

同じ質問が次にも適用されます。予約されたこと記入。

理解しようとするanacron のマニュアルページUbuntuの場合。

リクエストやサーバーがオンラインに戻った直後にジョブを実行するようにスケジュールできるツールはありますか?

と一緒にいる必要はありませんanacron。ただ何かなら利用可能な場合は、次に通話を終了します。sudo

言う

これらのアクションは固定スクリプト(存在する場合)ではありませんが、非常に可変的で条件付きです。つまり、プログラムの予期しない状況に応じて最初から予約することも、予約してはいけません。

私のプログラムに同様のインターフェースを提供するために、atd/anacronの上に独自のラッパーを開発する必要があるかもしれませんが、at何かがすでに存在することを願っています。fcron互換性があり、一部のリポジトリでUbuntuで使用できることを確認しました。

ベストアンサー1

一度実行されるジョブの場合、at要件は完全に満たされます。atdスケジュールされた日付以降もいつでもスケジュールされたすべてのタスクを実行します。特に、起動時atdにダウンタイム中に日付が期限切れになるすべてのジョブの実行をトリガーします。

定期的なタスクでは、固定スケジュールcrontabエントリと@rebootcrontabエントリを組み合わせることができます。項目では、@reboot過去24時間(または希望の時間間隔)で完了していない操作のみを実行してください。

42 5 * * * /usr/local/bin/myjob && touch /var/myjob/done
@reboot if [ -z "$(find /var/myjob.done -mtime 1)" ]; then /usr/local/bin/myjob && touch /var/myjob/done; fi

おすすめ記事