• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:時間毎のディレクトリ圧縮&ローテート方法を知りたい)

時間毎のディレクトリ圧縮&ローテート方法を知りたい

このQ&Aのポイント
  • CentOSで特定ディレクトリの圧縮方法とバックアップの保持期間について知りたい。
  • 現在はシェルとcronを使用してバックアップを作成しているが、手動で削除が必要な状況にある。
  • 識者の方々からのアドバイスをお待ちしています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

findを使えば日にち単位で削除できます。 find . -name \*.log -ctime +60 -type f -exec rm -fr {} \; と書けば、カレントディレクトリで「.log」という名前のファイルで60日以上古いものを削除します。 他の方法として、毎時取得の48時間保存なので、lsの結果をソートして最後のものをrmするとか。 (例を書いてみますが、動作確認はまったくしていません) KEEP=48 FILE=`"ls ." | wc -l` while [ $FILE -ge $KEEP ]; do RMFILE=`"ls ." | sort -r | tail -1` rm $RMFILE FILE=`"ls ." | wc -l` done

smart007
質問者

お礼

例文まで作成していただき恐縮です。 findにてOKでした。 例文を参考にさせていただき、下記を作成しました。 find . -maxdepth 1 -type f -name \*.gz -mtime +1 | xargs rm -f

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

GNU find なら分の単位でわかるみたい>#2.

smart007
質問者

補足

補足ありがとうございます。 質問に書いておけばよかったのですが、48時間という値は 大体で大丈夫なので、日にち単位としました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

find かな.

smart007
質問者

補足

仰るとおり、findを忘れておりました。。