OpenBlocks200+ssdlinux+logrotate(ログ管理)

関連サイト:http://rpmfind.net/linux/redhat/code/logrotate/
      http://directory.fsf.org/libs/popt.html

###logrotateをインストールするのに必要なpoptをインストール###
#コマンドラインオプションを拾うソフトらしいが・・・

###ソースをダウンロード###
wget ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz

###展開###
tar zxfv popt-1.7.tar.gz

###移動###
cd popt-1.7

###環境設定###
./configure

###コンパイル###
make

###インストール###
make install

###logrotateが見に行く場所にシンボリックリンクを張る###
ln -s /usr/local/lib/libpopt.so.0 /lib/libpopt.so.0

###ソースをダウンロード###
wget http://rpmfind.net/linux/redhat/code/logrotate/logrotate-3.3.tar.gz

###展開###
tar zxfv logrotate-3.3.tar.gz

###移動###
cd logrotate-3.3

###エラーとかデンジャラスとか言われるので、なんとなくソースを変更してみる
#まねすると痛い目にあう可能性があるので、気をつけてください。
【logrotate.c】
/*fprintf(errorFile, "error running prerotate script --
leaving old log in place\n");*/
↓1行で
fprintf(errorFile, "error running prerotate script leaving old log in place\n");

//errorFileName = strdup(tmpnam(NULL));

errorFileName = strdup((const char *)mkstemp(NULL));

//mktemp(filespec);

mkstemp(filespec);

###コンパイル###
make

###インストール###
make install

###設定###
#デフォルトの設定ファイルをコピー
cp examples/logrotate-default /etc/logrotate.conf
#実行ステータスを記録するファイルを格納するディレクトリを作成
mkdir /var/lib
#各種設定フォルダを作成
mkdir /etc/logrotate.d

#試しにApacheのエラーログをローテーション
vi /etc/logrotate.d/httpd

/var/log/httpd/error_log {
 weekly           #1週間ごと
 rotate 4          #4世代
 notifempty         #空の場合は何もしない
 missingok          #ファイルが無くてもOK
 compress          #ローテーションしたファイルは圧縮する
 postrotate         #ローテーション実行後再起動
  kill -HUP `cat /var/run/httpd.pid`
 endscript
}




上へ
 トップページへ