アプリ版:「スタンプのみでお礼する」機能のリリースについて

今まであまり意識しなかったんですが、ふと疑問に思ったので教えてください。

今までアプリケーションログをローテートする場合に、以下のようなスクリプトを書いていました。
cp -p log log.old・・・(1)
cp /dev/null log・・・(2)

でもこれって(1)と(2)の間でlogに書き込みがあるとその箇所が消されてしまうんじゃないか?と思いますがこの認識は合っていますでしょうか?

また、linuxのlogrotateは書き込み中であっても欠落なくローテートされることが保証されているのでしょうか?

A 回答 (1件)

その認識であってます。



ログのローテートはcpじゃなくてmvを使う必要があります。標準のlogrotateはmvを使っています。

ただ、mvしても元のファイルに書き続けるので、kill -HUP プロセス番号 とか、/etc/init.d/サービス名 reload とかして、新しいログファイルに書くようにします。当然、アプリケーション側でSIGHUPを受け取るとログファイルをクローズしてオープンしなおす機能が必要です。もしくは再起動するか。
    • good
    • 0
この回答へのお礼

notnotさん、ご回答ありがとうございます。
また、返信遅れましてすみませんでした。

mvとkill -HUPの間の書き込みはどうなるのかな?とも思いますが、
ここまで回答いただいたので後は自分で試してみます。

どうもありがとうございました。

お礼日時:2006/11/09 01:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!