私は Ubuntu 14.04 を使用しており、cron デーモンが実行されています:
# ps ax | grep cron
822 ? Ss 0:00 cron
しかし、ジョブは実行されていません。以前は/var/log/syslog
次のようなエントリを取得していました。
2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
しかし、今では cron 関連のエントリはありません。また、次のようなエントリも取得していました/var/log/auth.log
:
2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root
しかし、今度は cron 関連のエントリはありません。
何かが変わったとは思いません。cron を再起動してみました:
# service cron restart
cron stop/waiting
cron start/running, process 24907
crontab -e
を使用して cron ジョブを追加してみました* * * * * date >> /tmp/somefile
が、 に新しい crontab がインストールされてしまいました。cron/var/spool/cron/crontabs/root
では のファイルを使用したいと考えています/etc/crontab
。
使用できるデバッグ オプションはありますか、または調査できるエラー メッセージを表示するログがどこかにありますか?
答え1
ジョブの問題点をさらにデバッグするにはcron
、メールを確認する必要があります。これは通常、/var/mail/<user_name>
または のようなファイルに保存されます/var/spool/mail/<user_name>
。
これら 2 つのファイルは実際には私の Debian ボックス上のハードリンクですが、これが標準であるかどうかはわかりません。
説明
ページからcron(8)
:
コマンドを実行すると、出力は crontab の所有者 (または、crontab 内の MAILTO 環境変数で指定されたユーザー (存在する場合)) にメールで送信されます。
答え2
root 用の crontab がないことがわかりましたが、crontab エントリを持つユーザーはいますか? root のみを使用している場合は、次のディレクトリも確認できます: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly
私のマシン (centos 6.4) では、/etc/cron.daily/ ディレクトリ内に mlocate.cron があり、cron はそのスクリプトを毎日実行します。
したがって、cron ジョブを追加するだけでよいと思います。
答え3
権限を/etc/crontab
次のように変更することでこの問題を解決しました。
-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab
以前は でした-rw-rw-r--
。それが唯一の変更点です。以前は機能していませんでしたが、今は機能します。まだ理由はわかりません。
答え4
私も同様の問題を抱えていましたが、 でユーザーとして root を指定した後/etc/crontab
、cron ジョブがトリガーされ始めました。
これは、 に従う構文crontab -e
が と異なることが原因である可能性があります/etc/crontab
。