28日を過ぎたディレクトリ内のすべてのファイルをtar-gzするにはどうすればよいですか?

28日を過ぎたディレクトリ内のすべてのファイルをtar-gzするにはどうすればよいですか?

毎日フォルダのログファイルを削除します。

find ~/folder -mtime +28 -type f -delete

上記の削除コマンドの影響を受けたすべてのファイルをアーカイブして圧縮し、このtar.gzを新しいディレクトリフォルダ2に保存しようとしています。

それでは、次のようにしましょう。

~/folder:
  - x1 (3 days old)
  - x2 (3 days old)
  - y1 (29 days old)
  - y2 (29 days old)

~/folder2:
  - genericname1.tar.gz: (some already present archive)
    - ...

アーカイブ、圧縮、削除

~/folder:
  - x1
  - x2

~/folder2:
  - genericname1.tar.gz:
    - ...
  - genericname2.tar.gz:
    - y1
    - y2

ベストアンサー1

次のスクリプトを実行できます(GNUtarまたは無料アーカイブbsdtar):

find . -type f -mtime +28 -print0 | tar -czvf backup.tar.gz --null -T -

またはlogrotateを使用して起動します(推奨)。カスタム設定ファイルを/etc/logrotate.d/yourfileサンプルファイルに配置します。

/var/log/news/news.crit {
    monthly
    rotate 2
    olddir /var/log/news/old
    missingok
    postrotate
    kill -HUP ‘cat /var/run/inn.pid‘
    endscript
    nocompress
}

すべてのlogrotate構成オプションの詳細情報を表示できます。ここ

おすすめ記事