1. Logrotateツールの紹介 Logrotate はログファイル管理ツールです。Linux にデフォルトで付属しているログカットツールです。古いファイルのローテーション、圧縮、削除、新しいログ ファイルの作成に使用されます。ログ ファイルの管理を容易にするために、ログ ファイルをサイズ、日数などに応じてダンプすることができます。これは通常、cron スケジュール タスクを通じて実行され、ログの切り取りを時間別、日別などに分割できます。 2. Logrotateの動作メカニズム システムは logrotate を定期的に(通常は 1 日に 1 回)実行します。これがシステムが日常的に実装される方法です。 crontab は /etc/cron.daily ディレクトリ内のスクリプトを毎日定期的に実行しますが、このディレクトリには logrotate というファイルがあります。 [root@test01 ~]# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf 終了値=$? [ $EXITVALUE != 0 ]の場合 /usr/bin/logger -t logrotate "ALERT は [$EXITVALUE] で異常終了しました" フィ 終了 0 実際に実行すると、Logrotateは設定ファイル/etc/logrotate.confを呼び出します。 3. Logrotateの構成 /usr/sbin/logrotate #プログラムの場所; /etc/cron.daily/logrotate #デフォルトでは、Cron は 1 日に 1 回 logrotate を実行します。 /etc/logrotate.conf #グローバル設定ファイル; /etc/logrotate.d/ # グローバル設定を上書きするには、独自の設定ファイル保存ディレクトリを使用します。 注意: logrotate.d はディレクトリです。このディレクトリ内のすべてのファイルは、実行時に自動的に /etc/logrotate.conf に読み込まれます。また、/etc/logrotate.d/ 内のファイルに詳細が設定されていない場合は、/etc/logrotate.conf ファイルの設定がデフォルト値として使用されます。 4. Logrotateコマンドの形式 logrotate [オプション...] <設定ファイル> たとえば、logrotate がログ ファイルのローテーションを実行するのを待たずに、ログ ファイルのローテーションを強制的に実行したいとします。 [root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat #テスト用に使用します。注: CentOS7 コマンドは /usr/sbin/ にあります。 5. 共通設定パラメータの説明 Logrotate機能の実装で最も重要なことは、その構成パラメータです。 よく使用される構成パラメータは次のとおりです。
6. Logrotateをインストールして設定する #yum インストール [root@test01 ~]# yum -y logrotateをインストール #マシンにはすでにTomcatがインストールされています。Tomcatログをカットするための構成ファイルを設定します。 [root@test01 ~]# vim /etc/logrotate.d/tomcat 注: logrotate の設定ファイルは /etc/logrotate.conf であり、通常は変更する必要はありません。 ログ ファイルのローテーション設定は、/etc/logrotate.d/ ディレクトリに配置されている個別の構成ファイルにあります。 [root@test01 ~]# mkdir -p /var/log/tomcat/oldlog [root@test01 ~]# cat /etc/logrotate.d/tomcat /usr/local/tomcat8/logs/catalina.out { # 切り取るログのパス。複数ある場合はスペースで区切ってください notifempty # ログが空の場合はローテーションされません (つまり、空のログは切り取られません) rotate 5000 #ローテーション中に最大 5000 回まで以前のデータを保持します missingok #ログが失われた場合、エラーを報告せずに次のログのローリングを続行します compressed #圧縮を有効にします。これは、ローテーション後の古いログを参照します。ここでのデフォルトの圧縮は gzip です dateext #現在の日付を命名形式として使用します dateformat .%Y%m%d-%H dot #dateext と一緒に使用します。次の行にすぐに表示され、ファイルが切り取られた後のファイル名を定義します。dateext と一緒に使用する必要があります。%Y %m %d %s のみをサポートします olddir /var/log/tomcat/oldlog #ローテーション後のログファイルは指定されたディレクトリに配置されます} 注: この設定では、どのくらいの頻度でカットするかは設定していませんが、1 日に 1 回カットされます。これは、/etc/logrotate.d/tomcat ファイルが設定されていない場合、デフォルトでは /etc/cron.daily/logrotate ファイルが毎日実行され、このファイルが 1 日に 1 回カットされるためです。 #強制的にカットを実行し、/var/log/tomcat/oldlogにログがあるかどうかを確認します [root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat 設定ファイル /etc/logrotate.d/tomcat を読み取り中 olddir は /var/log/tomcat/oldlog になりました 状態ファイル用のハッシュ テーブルを割り当てています。サイズは 15360 B です。 1 ログの処理 ローテーションパターン: コマンドラインから強制された /usr/local/tomcat8/logs/catalina.out (5000 ローテーション) olddir は /var/log/tomcat/oldlog です。空のログファイルはローテーションされず、古いログは削除されます。 ログ /usr/local/tomcat8/logs/catalina.out を考慮する ログを回転させる必要がある ローテーションログ /usr/local/tomcat8/logs/catalina.out、log->rotateCount は 5000 です '.%Y%m%d-%H点' -> '.%Y%m%d-%H点' に変換されました 日付拡張子サフィックス '.20181226-15' グロブパターン '.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]ドット' 古いローテーションログを見つける glob が失敗しました fscreate コンテキストが unconfined_u:object_r:usr_t:s0 に設定されました /usr/local/tomcat8/logs/catalina.out の名前を /var/log/tomcat/oldlog/catalina.out.20181226-15:00 に変更し、ログを /bin/gzip で圧縮します。 デフォルトの作成コンテキストを unconfined_u:object_r:usr_t:s0 に設定する デフォルトの作成コンテキストを設定する # カット結果を見る # 以前に切り取ったファイルを削除します。再度切り取ると、ファイルは catalina.out.20181226-15.gz ファイルと同じになるため、切り取りは成功しません。 [root@test01 ~]# rm -rf /var/log/tomcat/oldlog/catalina.out.20181226-15点.gz [root@test01 ~]# ls /var/log/tomcat/oldlog/ [root@test01 ~]# # 1 分ごとに切り取るスケジュールされたタスクを設定します (注: 前に定義した空のログ ファイルは切り取られないため、ログにはコンテンツが含まれている必要があります) [root@test01 ~]# crontab –e */1 * * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >>/var/log/tomcat/oldlog/cutting.log # 2時間ごとにカット [root@test02 ~]# crontab -l 0 */2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /root/chenjiaxin/cutting.log #タイムドカットの結果を見る もちろん、1分に1回カットするという上記の設定は、実験によりできるだけ早く効果を確認できるようにするためです。実際には、会社のニーズに応じて丸太を切る頻度を設定する必要があります。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: mysql 解凍パッケージの基本インストールチュートリアル
>>: Alibaba Cloud で MySQL リモート接続を構成するための詳細な手順
導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...
目次1. プロトタイプチェーン継承2. コンストラクタによる継承3. 組み合わせ継承4. プロトタイ...
エラーメッセージ:エラー 2002 (HY000): ソケット '/tmp/mysql.so...
注意事項1. まず、mysql インストール ディレクトリに次の内容の my.ini ファイルを作成...
シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...
MySQL 8.0 for Windows v8.0.11 公式無料バージョン 64 ビット1. デ...
序文div またはモジュールに overflow: scroll 属性を使用すると、iOS フォンで...
以前のブログでは、Tomcatのサーバーの各コンポーネントの使用について学びました。 Tomcatは...
目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...
序文ブラウザをどのようにズームしても、ボックス コンテナーの高さを常に 100% に保つ必要がある場...
毎日jQueryプラグイン - カルーセルチャートを実装するためのjQueryプラグイン。参考までに...
Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリ、my-...
まず第一に、私はウェブデザイナーです。具体的には、私は XHTML フロントエンド デザイナーです。...
目次ブートオプションコマンドラインパラメータの長い形式と短い形式設定ファイル構成グループシステム変数...
fd コマンドは、Linux ファイル システムを検索するためのシンプルで簡単な方法を提供します。...