web-dev-qa-db-ja.com

なぜanacronが実行されないのですか?

AnacronがインストールされているUbuntuシステムがあります。しかし、私はそれが実行されていないことをかなり確信しています。 /etc/cron.dailyのコマンドを実行してsyslogファイルをローテーションしていません(logrotateを使用せずに独自のローテーションログメソッドを持つsysklogを使用しています)。ログが最後にローテーションされたのは2009年10月です。/var/spool/anacron/cron.dailyが存在し、内容は20091015です。その後、停電が発生し、すべてが再起動しました。

Anacronをデバッグするにはどうすればよいですか?なぜ実行されていないのか、どうすればわかりますか?私の最初の本能は/var/log/anacronを探すことですが、それはありません。どうすれば修正して再実行できますか?

9
Rory

以下を見てください。

zgrep anacron /var/log/cron.log.{9..1}* /var/log/cron.log | less

私にとって1つのシステムの最後のエントリは、2008年11月4日です。

zgrep anacron /var/log/syslog.{9..1}* /var/log/syslog | less

エントリーの範囲は12月28日から1月4日までです。

cat /etc/crontab

毎日、毎週、毎月、次のようなエントリが表示されます。

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

そして、これはたくさんのファイルを表示するはずです:

ls -l /etc/cron.{daily,weekly,monthly}

/etc/cron.dailyには、logrotateとsysklogdの両方があります。

そして、あなたがそうするならば:

ps auxww | grep [c]ron

cronデーモンが実行されていることがわかります。

もしあなたがそうするなら:

cat /etc/cron.daily/sysklogd

|| exit 0で終わる行がいくつか表示されます。ファイルが存在することを確認し、test -xのファイルの場合は実行可能であることを確認します。私はlogrotateを使用しているので、それらのいくつかは私には適していません。

Syslogdが実行されているかどうかを確認します。

ps -C syslogd

Savelogが存在し、実行可能かどうかを確認します。

ls -l $(type -p savelog)

現時点で考えられるのはそれだけです。

実行してみてください:

Sudo run-parts --test /etc/cron.daily

その行は、新しいスクリプトが「認識された」スクリプトの中にあるかどうかを示します。たとえば、スクリプトの名前が間違っている、execフラグが欠落している、権限の問題などが考えられます。

run-partsツール(cronで使用)が。shのサフィックスを好まないことがこの方法でわかりました

10
kjetildm

私はanacronがインストールされ、設定が間違っていて実行されていないubuntuの8.04 vps(w/plesk)を持っています。 apt-get再インストールは、すべての関連ファイルを再作成しました。

その後、私がしなければならなかったのは、anacronを起動してその作業を実行させるために、毎時crontabにエントリを追加することだけでした。

cron.hourly /に入れたスクリプトは

#!bin/bash
/path/to/anacron -s 

サービスを再起動してみてください。エラーが発生しますか?

1
ptman

一部のLinux cronは不安定です。 cfengineを使用してcronを再起動し、cronを使用してcfengineのミッションクリティカルなものを監視します。最近では、どちらも顕著にクラッシュしません。 cronが毎日クラッシュしていた90年代のようではありません:-)

0
SAnnukka

/etc/cron.{daily,weekly,monthly}/フォルダー内のスクリプトの名前にドットが含まれているため、実行されていないようです。ドットのない名前に変更してください。

0
Weishaupt