フォルダがあります/home/testuser/log
1日前のログファイルが含まれます*.log
。 1日以上前のすべてのログファイルを1つのZip(gzipまたはtar.gz)に圧縮し、古いファイルを削除します。
Findコマンドとtarコマンドをパイプライン化しようとしましたが、機能しませんでした
1日より古いログのtar.gzファイルを作成する
find /home/testuser/log/ -mtime +1 | xargs tar -czvPf /opt/older_log_$(date +%F).tar.gz
古いファイルを削除します[注:-以下の出力が正しい場合は、エコーを削除してから、それらのファイルを削除します]
find /home/testuser/ -mtime +1 | xargs -n1 echo rm
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*
ディレクトリを確認して、いつ実行するかを制御してください。