http://d.hatena.ne.jp/tociyuki/20070129/1170087364
http://d.hatena.ne.jp/lurker/20070228/1172595016
コレの対処法として、logrotateなんかだと
copytruncateなんてオプションが用意されていて
inode変えずにローテートしてくれるものがあったりする。
仕組みは、中身をコピーして、中身を削除するというそのまんま。
代償として割と高い確率でログファイルがぶっ壊れる。
ええー!あれって、壊れる可能性があるのか……そのあたりはよろしくやってくれる機能だと思ってたよ。
man logrotate
で見ると、「コピーして、ファイルサイズを 0 にするから、そのタイムラグで、若干ログを落しちゃうかも」とか書いてるけど、壊れるかもとは書いてないなぁ……でも新しい行に書き込んでいる途中に truncate されると、たしかに壊れた line ができるかも。
実際に実行されているのは
$ cp hoge hoge.old
$ :> hoge
こんな感じかな? 1行目 から 2行目のタイムラグかぁ……まぁ使う予定ないからいいけど(^_^;
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |