3

ログファイルを圧縮するcrontabがあります。

crontab -e私は-私はルートです-:

5 3 * * 6 find /toMyLogs -name "access*" -a ! -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;
35 3 * * 6 find /toMyLogs -name "error*" -a ! -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;

ログの例は次のとおりです。

$ ls -la /toMyLogs
-rw-r--r--   1 root     root       33317 Jul  2 19:04 error_1.log.2012-07-02
-rw-r--r--   1 root     root       12928 Jul  3 08:55 error_2.log.2012-07-03

コマンドを手動で実行すると、次のようになります。

find /toMyLogs -name "access*" -a ! -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;

動作しますが、cronでは動作しません。ログではなくサンプルファイルを使用してミニテストを実行し、cronを実行しました。うまくいきました。したがって、cronは確実に実行されています。

何が起こっているのか分かりますか?許可または時間?

4

3 に答える 3

0

問題の根源はわかりません。ただし、長いコマンドを別のスクリプトに転送すると役立つ場合があります。

ADD 私はそのような問題を抱えていましたcron-理由は絶対パスと相対パスの不一致にありました。しかし、ここであなたは絶対になりました。

于 2012-07-03T13:36:17.157 に答える
0

スクリプトを週に1回、毎週土曜日(週の6日)の3:05と3:35に実行するようにスケジュールしました。

構文は良さそうです。考えられる問題は、bzip2の実行である可能性があります。crontabPATHにプログラムへのパスが含まれていることを確認してください。

于 2012-07-03T13:38:52.863 に答える
0

cronを実行すると、環境の設定が異なります。cronが使用するPATHがbzip2プログラムを見つけられない可能性は十分にあります。

crontabが機能しない理由

于 2012-07-03T13:40:17.730 に答える