/etc/cron.hourly/myjobが機能しないのはなぜですか?

/etc/cron.hourly/myjobが機能しないのはなぜですか?

/etc/cron.hourlyにファイルがあります:

-rwxr-xr-x  1 root root  117 Mar  8 20:33 myjob

私は働く:

3,18,33,48 * * * * /usr/bin/python /home/me/src/myproject/src/manage.py myjobs > /home/me/log
3,18,25,27,29,31,33,35,37,48 * * * * /bin/echo "testing....." > /home/me/log

/etc/crontab:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

ログファイルが表示されないのはなぜですか?抜けたものはありますか? myjobは毎時間3,18、...分で実行する必要があります。

答え1

cron.hourlyのエントリは実行部分メカニズムによって実行されます(詳細はman実行部分を参照)。 run-parts は、有効とみなされるファイル名には難しいです。

たとえば、スクリプトに拡張機能を追加すると、その拡張機能が無効になり、ジョブの実行が失敗します。

/etc/cron.hourly(または.daily、.weeklyなど)にジョブを追加するときは、常にrun-parts --test /etc/cronコマンドを実行して、run-partsが実際にそのジョブを実行していることをテストしてください。毎時間

答え2

/etc/cron.hourly、、、のスクリプトは特定の時間に実行されるよう/etc/cron.dailyに設計されており、一般的なcrontab形式ではありません。あるいは、単にcrontab形式のファイルではなくスクリプトです。/etc/cron.weekly/etc/cron.monthly

/etc/cron.hourly の場合、毎時間実行されます。

crontabに行を挿入するには、crontab -eを使用する必要があります。 /etc/cron.hourlyで実行するには、5つの時間フィールドを削除して毎時間実行する必要があります(例:3,18,33,48 * * * *削除)。

そのため、スクリプトを/etc/cron.dmyjobの内容に移動したり、crontabファイルに追加したりできます。 /etc/cron.hourly ディレクトリから取得します。

/etc/crond.dに戻り、次のファイルに入れる必要があります。

3,18,33,48 * * * * root /usr/bin/python ....

関連情報