logrotateの動作を監視するにはどうすればよいですか?


51

Ubuntuでlogrotateが実行していることを監視するにはどうすればよいですか?logrotateのアクティビティを監視できますか?


プロセスが開いたファイル記述子を確認することができます...あなたが持っている正確な問題を説明してみてください。独自のスクリプトをデバッグしようとしていますか?デフォルト/サードパーティのスクリプトのパフォーマンス?
ヒューバートカリオ

回答:


55
cat /var/lib/logrotate/status 

特定のログが実際にローテーションされているかどうかを確認し、ローテーションの最終日時を確認するには、/ var / lib / logrotate / statusファイルを確認します。これは、ログファイル名と最後にローテーションされた日付を含む適切にフォーマットされたファイルです。

から取得:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10


16
このファイルは/var/lib/logrotate.status、Red Hatシステムと同じように見つかります。
マイケルハンプトン

1
Red Hatシステムでのlogrotateのトラブルシューティングに関する完全なガイドはこちらです:access.redhat.com/solutions/32831
Gaia

Ubuntuを考慮すると、rootユーザーによって開始されたlogrotateアクティビティcat /var/lib/logrotate/status のみが表示されます。他のユーザーのcronjobsは、crontabになどのエントリが含まれている場合など、独自のlogrotateアクティビティをトリガーできます0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state。そのlogrotateアクティビティは$HOME/logrotate/logrotate-state$HOMEそのユーザーのホームディレクトリとしてfile に書き込まれます。
アブダル

さらに新しいRedHatシステム(少なくともRHEL 7.6)では、ステータスファイルはになりました/var/lib/logrotate/logrotate.status
Richlv

13

デバッグモードまたは詳細モードでlogrotateを実行してみてください。

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.

これは、logrotateがcronとして開始されたときに役立ちますか?つまり、logrotateの動作をログファイルに記録する可能性はありますか?

2
/ usr / sbin / logrotate -v /etc/logrotate.conf&> /var/log/logrotate.log
kernelpanic

sudoのlogrotateの-v /etc/logrotate.conf&> /var/log/logrotate.logのbash:/var/log/logrotate.log:アクセス許可が拒否されました

1
@dude:コマンドラインからそれを行おうとしていて、そのエラーが発生した場合、次のようにする必要があります:(必ず持っていることsudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null確認してください-a)。
デニスウィリアムソン

@Dennisは、logrotate.logを作成しますが、0KBであり、プロセスが端末で停止せず、点滅カーソルで待機することを試みます。

9

Suse Linuxでは、ディストリビューションは次のようになります。

cat /var/lib/logrotate.status

AWS AMI Linuxには同じlogrotateのステータス構造があります
Victor Perov

5

構成ファイル(/etc/logrotate.conf)および/またはディレクトリ(/etc/logrotate.d)に基づいて、さまざまなログがさまざまな頻度でローテーションされます。名前はディストリビューションによって異なる場合があります。構成では、ローテーション前および/またはポストアクションを指定できます。ローテーションされたファイルの名前と最後のローテーションの日付は、状態ファイル(/ var / lib / logrotate / state)にあります。

Logrotateにはロギング機能がありません。開始されたリロード/再起動アクションは、実行中のプログラムのログに従って記録されます。

これを行う最も簡単な方法/etc/cron.daily/logrotateは、-vオプションを含めるように編集することです。logrotateの構成とオプションに関する詳細は、コマンドで確認できますman logrotate


3

おい、あなたはの設定を確認することができますlogrotate、通常は/etc/logrotate.conf

最新のディストリビューションではlogrotate/etc/logrotate.dディレクトリに特定の構成ファイルがあります。

例えば nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

ファイルは52週間(1年)保持されます。ローテーションは毎週行われます。


注:user56548は「Dude」でした

ここに画像の説明を入力してください


おそらく、rotate 365またはを意味しましたweekly。毎日のローテーションでrotate 52は、明らかに52日間のログが保持されます。
手本

おかげ@temoto、それは実際にだったweekly
リングØ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.