ファイルをcrontab構成に含めますか?


8

デプロイ時にすべてのバックエンドでcronジョブを簡単に更新できるように、プロジェクト固有のcrontab構成をコードリポジトリに入れようとしています。

ファイルをcrontab構成に含めることはできますか?何かのようなもの

* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'

回答:


8

cronデーモンとディストリビューションに応じて、cronのジョブを含むファイルを配置できるディレクトリが/ etcにいくつかあるはずです。

次のディレクトリに配置されたスクリプト(cron形式のジョブではない)は、指定された間隔で実行されます。頻度は保証されますが、実行の正確な時間は保証されない場合があることに注意してください。ほとんどのユーザーにとって、これらのディレクトリで十分です:

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

次のディレクトリに配置されたcron形式のジョブ(上記の例のような)は、指定された時間にcronによって実行されます。通常のエントリに加えて、コマンドの前にジョブのユーザーも指定する必要があることに注意してください。パッケージとソフトウェアの配布では、この方法がcronジョブを配布するための最良の方法です。

/etc/cron.d

cron.d形式のコマンドの例:

1 1 * * * root echo "serverfault is awesome" > /dev/null

ユーザー名は変数にできますか?同じユーザーとして実行する必要があるコマンドがたくさんありますが、異なる環境では別のユーザーになる可能性があります。$ USER = joeblow 1 1 * * * $ USER echo "serverfault is awesome"> / dev / null
Jay K

cronデーモンに依存します。たとえば、cronieは環境変数を許可しません。
ボスコー

4

私の知る限りではありません。それ/etc/cron.dが目的です。

Boscoeが指摘したように、/etc/cron.{hourly,daily,weekly,monthly}ディレクトリもありますが、そこにあるジョブはrootとしてのみ実行できます(明示的/bin/suにEUIDの変更に使用する場合を除く)。のジョブに/etc/cron.dは、実行するユーザーを指定する追加フ​​ィールドがあり、質問に/home/userパスが含まれているため、これらのジョブを任意のユーザーとして実行できるようにしたいと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.