カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告



最近の記事

カテゴリー

DATE: CATEGORY:TECH


備忘録。

logrotateでローテーションと削除をしてたのに、なぜか大量になっていた。

1000ファイルを超えていたので、一部だけ。

log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz
log.host.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz.1.gz

こんなファイル名で大量のファイルが出来てた。

調査


smb.conf設定

log file = /var/log/samba/log.%m


%m は、クライアントごとにログ・ファイルを作成することを意味し、
smbdがログ・ファイル書き出しの競合で性能低下が起きるのを予防している

smb.confのログ設定はデフォルトこれに合わせて、logrotateを設定していた。
logrotate設定

/var/log/samba/log.* {
weekly
missingok
rotate 7
compress
notifempty
}


「log.*」これがバカだった。

logrotateでは、通常、設定ファイルの「指定ファイル名」に対して、
以下のようにローテーションされていく。
(指定ファイル名=<filename> の場合)

(3回ローテーション)

--0回目
<filename>

--1回目
<filename>.1.gz

--2回目
<filename>.2.gz

--3回目
<filename>.3.gz


しかし、今回、ローテーションファイル名に「log.*」と指定してあるので、
アーカイブ後のファイルに対してもローテーションが走り、以下のように
なってしまっていた模様。おそらくこんな感じ。

(3回ローテーション)

--0回目
<filename>

--1回目
<filename>.1.gz

--2回目
<filename>.2.gz
<filename>.1.gz.1gz

--3回目
<filename>.3.gz
<filename>.1.gz.2gz
<filename>.2.gz.1gz
<filename>.1.gz.1gz.1gz


対処法


というわけで、設定を以下のように修正。

smb.conf設定

log file = /var/log/samba/%m.log


変わらず、クライアントによってログを分けるようにしといた。で、samba再起動。

/etc/init.d/samba restart


設定内容確認。

testparm -v > smbparm.20100114
# cat smbparm.20100114 | grep log\ level
log level = 1
# cat smbparm.20100114 | grep log\ file
log file = /var/log/samba/%m.log


これに合わせて、logrotateを設定しておく。
logrotate設定

/var/log/samba/*.log {
weekly
missingok
rotate 7
compress
notifempty
}


念のため、logrotate動作確認

# logrotate -dv /etc/logrotate.d/samba
reading config file /etc/logrotate.d/samba
reading config info for /var/log/samba/*.log
Handling 1 logsrotating pattern: /var/log/samba/*.log weekly (7 rotations)
empty log files are not rotated, old logs are removedconsidering log /var/log/samba/smbd.log
log does not need rotating


当てはまるパターンは「/var/log/samba/smbd.log」だけ。
再起動しかしてないから、想定通りの対象ファイルです。
他の「1.gz羅列ファイル」は当てはまってないしOK!
最後に、既存ファイルの1.gzが2回以上連続しているファイルは削除しておきました。

以上。…ってさすがにこんなハマリ方する人いないかw

Comment

私もハマリました。

私もハマリました。
この説明で助かりました。
ありがとうございます。

コメントの投稿

管理者にだけ表示を許可する


トラックバック


この記事にトラックバックする



copyright © なんとなしの日記 all rights reserved.
内職☆在宅ワークの最強は?アフィリエイト!. 初心者だってカッコ良いホームページ作るぅ!
Powered by FC2ブログ
Related Posts Plugin for WordPress, Blogger...