ファイルのログの回転

ファイルのログの回転

ファイルを回転させ、回転したファイルを「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アーカイブはまだ存在しません。

logrotatepostcompressフックは提供されていませんが、次のことができます。

  1. 代わりにフックを使用してくださいlastaction
  2. スクリプト/コードで圧縮を処理しますpostrotate。ファイルを圧縮するシェルスクリプトを作成し、ファイルを移動してセクションpostrotateから呼び出します。compressこの場合、このオプションを無効にすることを忘れないでください。
  3. compresscmduncompresscmd必要に応じてファイルの検索と移動を担当するカスタム圧縮/圧縮解除スクリプトを使用して、同様の操作を使用して実行します。
  4. CRONジョブとは無関係に移動logrotateまたはpostrotateat (圧縮時間を実際に予測できないため、これは非常にきれいではありません)

詳細については、以下を確認してください。ここlogrotate最初はワークフローを理解するのが少し難しいかもしれませんが、必要な手順を習得すると、すべてがスムーズに実行されます。 ;) 次のSE質問にも興味があるかもしれません。

関連情報