ワイルドカードを使用します。 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 {} \;