GNU/Linux >> Linux の 問題 >  >> Linux

cron ジョブを使用してログ ファイルを削除する

ワイルドカードを使用します。 crontab に入れるだけです crontab -e を使用 crontab ジョブを編集するオプション。
例を見る:

* * * * *  find  /path/to/*.log -mtime +7 -exec rm -f {} \; 

答えを増やすために、 crontab の操作方法に関するこの素晴らしい記事を確認してください ! Linux で。


個人を編集します crontab -e を実行して crontab .これは /var/spool/cron/<username> に保存されます .ファイルは所有者のユーザー名になるため、ルートは /var/spool/cron/root になります。ファイル内のすべてがファイルの所有者として実行されます。

crontab の構文は次のとおりです。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

自分の個人を編集しているとき crontab、crontab -e 経由 の場合、ユーザーはファイル名から推測されるため、ユーザー名フィールドを省略します (最初の段落を参照)。

そうは言っても、エントリは次のようになります:

0 5 * * *  find  /path/to/*.log -mtime +7 -delete

これは毎日、システム時間の午前 5:00 に実行されます。 7 のファイルを削除するという事実を考えると、毎日より頻繁に実行する必要はないと思います 古い。

-exec を使いすぎないでください オプション、 -delete の場合 オプションは、あなたがやりたいことを正確に行います。 exec はファイルごとにシェルをフォークし、システム リソースを過度に浪費します。

完了したら、 crontab -l を使用できます 個人の crontab を一覧表示します。

ps。ほとんどの Linux システムのデフォルトのエディターは vi です。vi がわからない場合は、環境変数 export EDITOR=nano を設定して nano などの単純なものを使用してください


find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;

cron ジョブを作成するには、以下を含むファイルを /etc/cron.daily ディレクトリに配置します:

#!/bin/sh
find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;

Linux
  1. LinuxでLogrotateを使用してログファイルを管理する方法

  2. Linuxでの使い捨てcronジョブにatを使用する

  3. [解決済み]ルートディレクトリにファイルを書き込むcronジョブwget

  1. Linuxログファイル

  2. Crontab の問題:パーセンテージを使用すると Cron ジョブが機能しない

  3. Linux で tmpreaper を使用して N 日以上経過したファイルを削除する方法

  1. LinuxでLog2ramを使用してRAMにログファイルを書き込む方法

  2. cronラッパースクリプトの使用

  3. 毎週の cron ジョブをテストする