web-dev-qa-db-ja.com

古いログファイルを単一のZip-linuxに圧縮する

フォルダがあります/home/testuser/log 1日前のログファイルが含まれます*.log。 1日以上前のすべてのログファイルを1つのZip(gzipまたはtar.gz)に圧縮し、古いファイルを削除します。

Findコマンドとtarコマンドをパイプライン化しようとしましたが、機能しませんでした

7
Ajo Mathew

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
10
Rahul Patil

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.gzdump.sql.2.gzなどにローテーションし、最も古いものを削除します。

logrotate自体は通常cronによって呼び出されるため、/etc/cron*ディレクトリを確認して、いつ実行するかを制御してください。

1
domsom