/home/testuser/log
1日前のログファイルを含むフォルダがあります*.log
。 1日が経過したすべてのログファイルを単一のzip(gzipまたはtar.gz)に圧縮し、古いファイルを削除したいと思います。
パイプの検索とtarコマンドを試しましたが、成功しませんでした。
答え1
1 日後のログの tar.gz ファイルの作成
find /home/testuser/log/ -mtime +1 | xargs tar -czvPf /opt/older_log_$(date +%F).tar.gz
古いファイルの削除[注:-以下の検索結果が正しい場合は、echoを削除してからこのファイルを削除してください。]
find /home/testuser/ -mtime +1 | xargs -n1 echo rm
答え2
sr_のコメントを拡張すると、logrotateを使用して夜間SQLダンプを管理しています。私は次の構成を持っています/etc/logrotate.d/mydbdump
:
/var/backups/dump.sql {
daily
rotate 7
missingok
create 640 root root
compress
}
デフォルトでは、ファイルをインポートして/var/backups/dump.sql
(ログファイル名を指定できます)、圧縮してから名前をdump.sql.1.gz
。dump.sql.1.gz
dump.sql.2.gz
logrotate
通常それ自体が呼び出されるので、実行時を制御するにはディレクトリをcron
確認してください。/etc/cron*