この名前の形式のログファイルがあるとします。
NameLog.log.2014-09-27
NameLog.log.2014-09-28
NameLog.log.2014-09-29
NameLog.log.2014-09-30
NameLog.log.2014-10-01
NameLog.log.2014-10-02
NameLog.log.2014-10-03
NameLog.log.2014-10-04
ログファイルを削除したい
NameLog.log.2014-09-27
NameLog.log.2014-09-28
NameLog.log.2014-09-29
NameLog.log.2014-09-30
実際には、ファイルログに30個のファイルだけを保持したいと思います。スクリプトでbash
この問題をどのように解決できますか?
答え1
必要な操作を実行する最も簡単な方法は、ディレクトリから30日以上経過したすべてのファイルを削除することです。次のコマンドを使用できますfind
。
find /path/to/log/ -maxdepth 1 -name "NameLog.log*" -mtime +30 -delete
説明する:(望むより:シェルの解釈)
-maxdepth 1
:フォルダ構造を掘り下げないでください-name "NameLog.log*"
:この名前のログファイルにのみ適用されます。-mtime +30
:修正時間が30日を超えました。-delete
:削除してください