system management
1752461 メンバー
5860 オンライン
108788 解決策
新規ポスト

syslogのログローテートについて

 
buri0624
時折のアドバイザー

syslogのログローテートについて

お世話になります。

syslogローテートについて

kill -HUP `cat /var/run/syslog.pid`

を実行する事で、

syslog.logファイルがOLDsyslog.log

にリネームされて、syslog.logファイル

を新しく取り始めると思っていたのですが、リネームされませんし、ログ情報はそのままsyslogに追記されています。

syslog中にはrestartのログは残って

いるのですが、原因が分からす困っています。

根本的に考え違いをしている可能性も

ありますが、どういったことが考えられるのか、ご教授の程宜しくお願い致します。

2件の返信2
ishi-ishi
アドバイザー

syslogのログローテートについて

syslogが、OLDsyslogに変わるのは、/sbin/init.d/syslogdの中で行われます。

その中味を見ると、「'start')」で行われていますので、リブート時(起動時)にsyslog.logをOLDsyslog.logにmvして、その後にマスクをセットしてから、syslog.logを/dev/nullから作成しているようですよ。
nt
貴重なコントリビューター

syslogのログローテートについて

syslogd は logfile の rename は行いません。

自分で行う必要があります。

syslogd に SIGHUP を送ると設定ファイルを読み直し、設定を変更します。

このとき logfile の close/re-open を行います。

一般的に daemon process は logfile を open したまま書き込みを行います。

この場合 logfile を rename してもその file に log を書き続けます。

そのため多くの daemon process には logfile の close/re-open

(file が rename されている場合は新規作成) の仕組みが

組み込まれています。