cronがジョブを実行していない理由を調べるにはどうすればよいですか?


15

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がインストールされましたが/var/spool/cron/crontabs/root、cronでファイルを使用するにはが必要です/etc/crontab

使用できるデバッグオプションや、調査できるエラーメッセージを出力する可能性のあるログはありますか?


1
crontab -lには何が表示されましたか?
user345352353

no crontab for root
jl6

このSEサイトでほんの少し検索をすれば、答えがあると思います。これはかなり一般的な問題です。
mdpc

crontabコマンド(-lスイッチ)を使用して取得されたクローンはユーザーに依存しますが、/etc/crontabシステム全体のクローンを保存するために使用されます。このため、に保存されたタスク/etc/crontabは誰にも表示されませんcrontab -l
ジョンWHスミス14

Server Faultには、役に立つかもしれないcronjobデバッグに関する標準的な質問があることに注意してください。
ワイルドカード

回答:


4

cronジョブの何が問題なのかをさらにデバッグするには、メールを確認する必要があります。これは通常、/var/mail/<user_name>またはのようなファイルに保存されます/var/spool/mail/<user_name>

これらの2つのファイルは、実際には私のDebianボックスのハードリンクですが、これが標準かどうかはわかりません。

説明

cron(8)ページから:

コマンドを実行すると、すべての出力がcrontabの所有者(またはcrontabのMAILTO環境変数(存在する場合)で指定されたユーザー)にメールで送信されます。


メールを確認しました。何も生成されておらず、dead.letterファイルもありません。
jl6

0

ルート用のcrontabがないことを示しましたが、ユーザーはcrontabエントリを持っていますか?ルートのみを使用している場合は、次のディレクトリも確認できます。/etc/cron.daily/-/etc/cron.hourly/-/etc/cron.monthly/-/etc/cron.weekly

私のマシン(centos 6.4)では、/ etc / cron.daily /ディレクトリ内にmlocate.cronがあり、cronはそのスクリプトを毎日実行します。

cronジョブを追加するだけでいいと思います。


ただし、にはcrontabファイルがあり/etc/crontabます。たぶん問題はcrontab -lそれを認めない理由でしょうか?
jl6

0

/etc/crontab次の権限を変更することでこれを解決しました。

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

以前はでした-rw-rw-r--。それが唯一の変更でした。今は機能していませんでした。理由はまだわかりません。


1
ルートcrontabは、ルートとしてコマンドを実行します。非ルートへの書き込みアクセスを許可するアクセス許可は、セキュリティホールと見なされます。
ChuckCottrill

@ChuckCottrill:しかし、グループの書き込みビットは、ルートグループ内のユーザーにのみ書き込みアクセスを許可します。これはおそらく単なるルートユーザーですか?
jl6

0

同様のタイプの問題もありましたが、でrootをユーザーとして指定した後/etc/crontab、cronジョブがトリガーを開始しました。

これは、上に続く構文に起因するかもしれないcrontab -eと異なっています/etc/crontab

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