/etc/crontab または任意のユーザーcrontabが実行されていない

/etc/crontab または任意のユーザーcrontabが実行されていない

私のサーバーは CentOS 5 です。/etc/crontab を編集したり、"crontab -e" コマンドで任意のユーザー (root を含む) の crontab を編集したりすると、"(システムログに「(admin) RELOAD (/etc/crontab)」または「(admin) RELOAD (cron/admin)」が記録されます。/var/log/cron に CMD は記録されません。

/var/log/cron のサンプルエントリ:

Aug 10 10:21:33 localhost crontab[31688]: (root) BEGIN EDIT (root)
Aug 10 10:21:42 localhost crontab[31688]: (root) REPLACE (root)
Aug 10 10:21:42 localhost crontab[31688]: (root) END EDIT (root)
Aug 10 10:22:01 localhost crond[2688]: (root) RELOAD (cron/root)

「サービス crond ステータス」の結果:

crond (pid 1345) is running...

コマンド「cat /var/log/messages | grep cron」では何も返されません。

/etc/cron.allowの内容:

admin
root

/etc/crontab の内容:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
* * * * * root run-parts /bin/date >> /data/date.txt

ps aux |grep cron の結果:

root      1345  0.0  0.1   5268  1204 ?        Ss   11:43   0:00 crond

管理者のcrontabの内容:

* * * * * /bin/date >> /data/date.txt

実行されていないのは管理者の crontab だけではないことに注意してください。すべての cron ジョブが実行されていません。

なぜ実行されないのか、何か考えはありますか?

答え1

ジョブが無視される原因となる /etc/cron.allow ファイルまたは /etc/cron.deny ファイルがないことを確認してください。

/etc/cron.allow が存在しない場合は、誰でも cron ジョブを実行できます。存在していても空の場合は、誰でも cron ジョブを実行できるかどうかはわかりません。

答え2

crontab にエラーがあります。以下を確認してください:

 * * * * * root run-parts /bin/date >> /data/date.txt

/bin/dateディレクトリでrun-partsを呼び出すと、間違いなく失敗します。エラーはstderrに出力され、キャッシュされません。>>

答え3

名前の付いたファイル/etc/cron.allowが存在しない場合は作成し、ユーザー名を追加します。

答え4

この質問に対する回答はすでに受け入れられていますが、私にとってうまくいったことを追加したいと思います。URL を引用するのは良い考えです。クエリが含まれている場合は、すべてを引用しないと機能しない可能性があります。

「?、=、#、%」を含む URL は必ず引用符で囲んでください。

例。 https://paystack.com/indexphp?docs/api/#transaction-charge-authorization&date=today 「https://paystack.com/indexphp?docs/api/#transaction-charge-authorization&date=today」のように引用符で囲む必要があります。

関連情報