関連サイト: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
}
上へ トップページへ