AnacronがインストールされているUbuntuシステムがあります。しかし、私はそれが実行されていないことをかなり確信しています。 /etc/cron.dailyのコマンドを実行してsyslogファイルをローテーションしていません(logrotateを使用せずに独自のローテーションログメソッドを持つsysklogを使用しています)。ログが最後にローテーションされたのは2009年10月です。/var/spool/anacron/cron.daily
が存在し、内容は20091015
です。その後、停電が発生し、すべてが再起動しました。
Anacronをデバッグするにはどうすればよいですか?なぜ実行されていないのか、どうすればわかりますか?私の最初の本能は/var/log/anacron
を探すことですが、それはありません。どうすれば修正して再実行できますか?
以下を見てください。
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のサフィックスを好まないことがこの方法でわかりました
私はanacronがインストールされ、設定が間違っていて実行されていないubuntuの8.04 vps(w/plesk)を持っています。 apt-get再インストールは、すべての関連ファイルを再作成しました。
その後、私がしなければならなかったのは、anacronを起動してその作業を実行させるために、毎時crontabにエントリを追加することだけでした。
cron.hourly /に入れたスクリプトは
#!bin/bash
/path/to/anacron -s
サービスを再起動してみてください。エラーが発生しますか?
一部のLinux cronは不安定です。 cfengineを使用してcronを再起動し、cronを使用してcfengineのミッションクリティカルなものを監視します。最近では、どちらも顕著にクラッシュしません。 cronが毎日クラッシュしていた90年代のようではありません:-)
/etc/cron.{daily,weekly,monthly}/
フォルダー内のスクリプトの名前にドットが含まれているため、実行されていないようです。ドットのない名前に変更してください。