古いログファイルを圧縮して新しいディレクトリに移動

古いログファイルを圧縮して新しいディレクトリに移動

/home/usr/logs/1日より古いログファイルを含むフォルダがあります。 1日が経過したすべてのログファイルを別々の圧縮アーカイブ(zipまたはtar.gzなど)に圧縮してフォルダに移動したいと思います/home/usr/logs/archive

ログファイルの命名形式はvalid.app5s.log.1019、、、、、、、、ですapp5s.gf3sts.1019valid.app5s.gf3log.1019app5s.gf3log.1019app5s.gf1sts.1019valid.app5s.gf1log.1019app5s.sts.1019

私はこれを試みます:

find .  -mtime +1 -exec zip filename.zip '{}' + && mv filename.zip archive/ \;

ただし、これらのファイルは正しく圧縮されません。誰でも私のコードでエラーを見つけるのに役立ちますか?

ベストアンサー1

logrotateはこれを行うことができ、パターンマッチングは* logです。次に、「postrotate」というセクションを追加し、回転後に実行される小さなbashスクリプトpostrotateを考えます。

はい。

/home/usr/logs/*.log {
    daily
    missingok
    compress
    #delaycompress (this will prevent compressing of one day)
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
                mv /home/usr/logs/*.gz /home/usr/logs/archive/;
    endscript
}

アップデート1:

gzipの代わりにzipを使用するには、以下を追加してください。

compresscmd /usr/bin/zip
compressoptions -r
compressext .zip

おすすめ記事