ファイルを回転させ、回転したファイルを「backup」という新しいディレクトリに配置したいと思います。ログの回転が正常に機能し、回転したファイルがバックアップディレクトリに移動されません。以下で私が使ったスクリプトを見つけてください。
注:.gz形式で圧縮された最近回転したファイルだけがバックアップフォルダに移動されず、.gz形式で保持されている他のzipファイルと同様に移動されます。
スクリプト -
compress
/data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/test.log {
daily
copytruncate
create 775 root wsdepl
dateext
dateformat %Y-%m-%d
rotate 30
maxage 30
missingok
#notifempty
sharedscripts
postrotate
mv /data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/*.gz /data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/backup
endscript
}
答え1
~からlogrotate(8)
:
それは自動を可能にします回転、圧縮、削除、メール送信ログファイル。 [...] postrotateとendscriptの間の行(両方とも行に単独で表示する必要があります)ログファイルの回転後に実行されます。
つまり、postrotate
回転後に発生しますが、圧縮前に発生します。呼び出すと、mv
ログのgzipアーカイブはまだ存在しません。
logrotate
postcompress
フックは提供されていませんが、次のことができます。
- 代わりにフックを使用してください
lastaction
。 - スクリプト/コードで圧縮を処理します
postrotate
。ファイルを圧縮するシェルスクリプトを作成し、ファイルを移動してセクションpostrotate
から呼び出します。compress
この場合、このオプションを無効にすることを忘れないでください。 compresscmd
uncompresscmd
必要に応じてファイルの検索と移動を担当するカスタム圧縮/圧縮解除スクリプトを使用して、同様の操作を使用して実行します。- CRONジョブとは無関係に移動
logrotate
またはpostrotate
at
(圧縮時間を実際に予測できないため、これは非常にきれいではありません)。
詳細については、以下を確認してください。ここ。logrotate
最初はワークフローを理解するのが少し難しいかもしれませんが、必要な手順を習得すると、すべてがスムーズに実行されます。 ;) 次のSE質問にも興味があるかもしれません。