Recent Comments

BIND+PHPによるDiCEで更新可能なダイナミックDNSサーバ構築
 [09/04] marijuana growing様
 [09/04] cotto vs chavez jr様
 [09/04] Celebrex cost様
日記:CPU交換でサーバが劇的に軽くなった
 [09/01] Scarencah様
 [08/26] exexattDawitY様
 [08/23] ClidoDorpbodo様
DiCEのプラグイン編集
 [08/31] Elke Abrew様
 [08/29] hentai様
 [08/28] koniSorn様
Linux:cocotで文字コードの違うシステムにssh接続
 [08/29] sonneandgone様
 [08/25] Plalayfef様
 [08/24] melissagibso様
買った:メガネ21 Fit-mini
 [08/23] ケンタロウ様

Profile

名前:げんき
職業:ねじ屋さん
趣味:機械いじり
  買ったものや試したことを日記混じりで書きつづっております。

中の人

なかのひと
Graph 2010.9.4
Year:  Month:  Day

<<< 日記:稼働中のサーバ上のrsyncで低負荷バックアップ(失敗) <<<  ||  >>> 日記:CPU交換でサーバが劇的に軽くなった >>>

PHP:自作ログローテーション

2009年05月16日

logrotateの設定の仕方がよくわからないので、自分でログローテーションするスクリプトを作ってcronで実行するようにした。
なんとかの一つ覚えでPHPで。
「するようにした」とか軽く過去形でゆっちゃったけど、3年近く前のことなんだけど、今急に思い出したから書いとく。

仕様


  • チェックするログファイルのサイズを確認して、それぞれ設定値を超えてたらログファイルバックアップ用ディレクトリに移動してサービスを再読込する。
  • 移動後のファイル名は、「元ファイル名+bak+日付+通し番号」。
  • 移動後、FTPやsambaで扱いやすいようにchownする。

  • サービス再読込した旨をメールで報告。
  • ログバックアップ用ディレクトリが指定サイズを超えたらメール報告。
  • ルートシステムの入ってるパーティション空き容量が指定サイズを切ったらメール報告。
  • 別スクリプトでバックアップファイルをzip圧縮。

実装
ログローテーションする人:logrotate.php
ZIPする人:ziplogs.php
ログローテーションは2時間毎ぐらいにcronで実行。
ZIPするのは、1日1回でも週1回でもいいけど、ログバックアップ用ディレクトリに置いて、そこに移動してから実行する。
crontabに書くなら、

0 15 * * * cd /home/genkikko/MyDocuments/logs/ ; nice -n 19 /usr/bin/php4 ziplogs.php
てな感じで、移動してから実行するように書く。
ウチではおやつ時にniceでCPU優先度を最低にして毎日実行。

<<< 日記:稼働中のサーバ上のrsyncで低負荷バックアップ(失敗) <<<  ||  >>> 日記:CPU交換でサーバが劇的に軽くなった >>>

アンケート

このページの内容はいかがでしたか?
片手間にポチっと送信してやってください。
役に立った 0
おもしろかった 2
ふつー 0
つまらなかった 0
欲しい情報と違った 0
Score:2

トラックバック

このエントリーのトラックバックURL:
http://www.genkikko.net/mt/mt-tb.cgi/138

コメントを投稿