tomcat のバックアップ(No.1)


tomcat

mod_jk2のコンパイル&インストール

ダウンロードしたファイルを解凍し、コンパイルディレクトリへ移動します。

tar zxvf jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gz
cd jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2/

次にコンパイルします。configure するときの注意点として、Apache2 の apxs のパスと Tomcat のパスを渡す必要があります。

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-tomcat41=/usr/local/tomcat

tomcat5の場合、指定する必要なし。

make

コンパイルが成功すると、jk/build/jk2/apache2/mod_jk2.so に Apache 用のモジュールが生成されますので、Apache の modules ディレクトリにコピーします。

cp ../build/jk2/apache2/mod_jk2.so /usr/local/apache2/modules/

次に mod_jk2 の設定ファイルを Apache の conf ディレクトリにコピーします。

cp ../conf/workers2.properties /usr/local/apache2/conf/ 
cd jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2
$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs

tomcatのログファイル、catalina.out を再起動なしでローテーションする

tomcatの出力するログはserver.xmlの設定によって、tomcatを再起動しなくてもローテーションすることが出来ます。
しかし、catalina.outだけは標準出力と標準エラー出力をリダイレクトしたものなので、
tomcatを再起動しなくてはローテーションが出来ません。

しかし、rotatelogs を使えば対応できます。
rotatelogs はapacheのオマケに付いてくるログローテーション用のプログラムで、
Apacheの再起動無しログローテーションを実現できるものです。
そしてrotatelogsは、Apacheのログに限らず様々なログ出力に使用可能なのです。

tomcatの場合は次のように設定します。

インストールディレクトリ以下にある bin/catalina.sh を編集します。
最初に以下のようになっている場所を削除しましょう。

touch "$CATALINA_BASE"/logs/catalina.out

この部分は不要になるので削除してください。そして次に編集するのが以下のポイントです。

>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

2カ所あるので注意ししてください。この部分二箇所を以下のように書き換えます

| /usr/local/apache2/bin/rotatelogs "$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d.txt 604800 &

末尾の数字は604800毎にローテーションするという意味です。以上で設定完了です。
あとはtomcatを起動すれば、catalina.out.2005-04-01の様な名前のログファイルができます。