logrotateの
仕事でしばしば問題やサイトのログ統計nginxの毎日の平均PV、UVを訪問しを見つけるために、どちらかのアプリケーションまたはシステム・エラー・ログで、ログを表示するために要求されています。これは、ログの重要性を反映しているが、プロジェクトによって生成されるたびに記録さより多くのビジネスが非常に多くなるだろうというとき、通常、我々は、ログオンするための利点を見つける必要があるでしょう、そしてあなたは、合理的なログインする必要があり、この時バックアップの保持。累積時間では、ログファイルは非常に大きくなり、我々はそれが非常に困難になるときにコマンドのログセクションを見つける必要があるので、私たちは、ポーリング処理を切断ログのすべての種類を読む必要があります。
logrotateのシステムはcrondやシェルスクリプトのログ切削工具が付属してログのポーリングを切断達成することができます。以下は、logrotateのを使用する方法について説明します。
1は、機械のlogrotateのを見ます
[iZ28ed866qmZデータ@ルート]#これはlogrotateの は/ usr / sbinに/ logrotateを
2、logrotateの任意のディレクトリに実行可能ファイルを作成します
[ルート@ iZ28ed866qmZデータ]#1 は、mkdir logrotateの
[ルートiZ28ed866qmZのlogrotateの@]#のVimのtomcat_log1.conf
{/workspace/service_platform/apache-tomcat-7.0.69-jd1/logs/catalina.out #パスログ生成
copytruncate
毎日
dateext
missingokを
}
詳細な3、logrotateの引数
毎日:毎日ダンプサイクルを指定し
、毎週:毎週指定されたダンプサイクル
毎月:私は、ファイル月額ラウンドロビンをログに記録します。「毎日」、「毎週」または他の有用な値は「毎年」
5回転:店舗5アーカイブ・ログに一度。第六アーカイブの場合、最も古いアーカイブが削除されます
圧縮:ラウンドロビンタスクが完了すると、gzipで圧縮されたラウンドロビンアーカイブを持っています
missingok:ラウンドロビンの間にすべてのエラーをログには、「ファイルが見つかりません」エラーとして、無視されます
notifempty:ログファイルが空の場合は、ラウンドロビンはできません
644ルートルートを作成:新しいログファイルを作成するために、指定されたアクセス権を、logrotateのは、元のログファイルの名前を変更する一方
dateext:切り替え後のログファイルには、ダッシュや日付書式YYYYMMDDで追加されます
圧縮:古いログ・ダンプによって、gzip圧縮を
delaycompress:次の圧縮ダンプする現在のログファイルのダンプ
notifempty:ログファイルが空の場合、切削実行しないでください
sharedscripts:全体のみログ・グループのスクリプトのために一度実行
postrotate / endscript:この権利を置くことができますダンプ後に実行するために、2つのキーワードが別の行になければなりません
サイズ:サイズダンプ、サイズはバイト(デフォルト)およびKB(sizek)またはMB(サイズM)を指定することができたときにログファイルが指定されたサイズに達します
図3に示すように、タイミングがcrondによって実行されます
[iZ28ed866qmZのlogrotateの@ルート]#のcrontab - lの ## Tomcatのログ## 59 23 * * *は/ usr / sbinに/ logrotateを-f /data/logrotate/tomcat_log1.conf
4、バックアップスケジュールのクリーンアップスクリプト
[iZ28ed866qmZスクリプト@ルート]#の猫の log1_polling。sh #!/ binに/ SHの logs_path = " /workspace/service_platform/apache-tomcat-7.0.69-jd1/logs " c_log = catalina.out a_log = localhost_access_log 見つける $ logs_path -name " カタリナを* - * - *ログ「 -exec RM - RF {} \。 以下のための私で $(配列番号 1 ); やる 日付 = ` 日付 + " %Y%mの%dの" -d" - $ {I}の日" ` dates2 =` 日付 + " %Y-%M-%D " -d " - $ {I}の日" ` CD $ logs_path タール zcf $ a_log $日付。タール.gzを$ a_log。$ dates2.txt タール zcf $ c_log。$日付。タール .gzを$ c_log- $日付が 眠る 30を 待って 見つける $ logs_path -mtime + 7 -name " localhost_access_logを* TXT。。" -exec RM - 高周波{} \; 見つける$ logs_path -mtime + 7 -name " catalina.out - *ログインします。" -exec RM - 高周波{} \を。 完了 見つける $ logs_path -mtime + 7 -name "。localhost_access_logを* tar.gz形式" -exec RM - 高周波{} \; 見つける $ logs_path -mtime + 30 -name "。カタリナを* tar.gz形式" -exec のrm -rf {} \を。
図5に示すように、タイミングタスクを追加しました
[iZ28ed866qmZスクリプト@ルート]#のcrontab - L 00 00 * * * / binに/ SH /データ/スクリプト/ log1_polling。SH