私は私が指定した順序で毎日2つのタスクを連続して実行したいと思います。このcrontabは私が望むものを安定して実行できますか?
@daily job1
@daily job2
私はそれらが順番に実行されていると仮定していますが、Webを検索したり、次のマンページのいずれかで答えを見つけることができません:cron(1)
、、、。crontab(1)
crontab(5)
@daily
cronがスケジュールされたタスクを並列に実行するか、予測不可能な順序で実行している場合、上記のcrontabは明らかに私が望むタスクを実行しません。
私は単にシェルスクリプトを作成して順番に実行できることを知っています。 cronがどのように機能するのか疑問に思います(そしてテストデータを収集したり、ソースコードを読み取るには怠惰です)。
Cronはソフトウェアパッケージで提供されていますcron
。オペレーティングシステムはUbuntu 10.04 LTS(サーバー)です。
ベストアンサー1
ソースコードを少し見てみると(同じバージョンであると思われるDebian squeezeでは)、与えられたファイルのエントリが同じタイミングで順次実行されるように見えます。この目的のためにとは@daily
同じ0 0 * * *
です(実際にはこのcronと@daily
同じです0 0 * * *
)。
私は全体的にこれに依存しません。ある日、誰かが32コアCPU(このうち31はアイドル状態)を利用するために、cronがタスクを並列に実行する必要があると判断するかもしれません。クローンソースで見つかった20年前のToDoエントリの実装中にこれを行うことができます。
これらはすべてタグ付けされ、ロードを制限する必要があります。つまり、@hourlyは「0 * * * *」ではなく、「毎時間の前半に近いがシステム負荷が低いまで」を意味しません。 (…)(vix、1990年1月)
ここに書くのはとても簡単です@daily job1; job2
。課題を順番に実行することが重要な場合は、作成した内容の直接的な結果を作成してください。
また、明示的な順序を使用すると、将来の管理者が重要ではないと見なす行の並べ替えのリスクが排除されます。