Shellスクリプトカットtomcatのログファイル


デバッグlogbackとlog 4 jのファイルカットがなかなか成功しないため、shellでシナリオを書いてtomcatのログファイルをカットします。
1:無駄話はもちろん、台本を直接貼り付けます。

#!/bin/sh
log_dir=/var/log/tomcat
monitor_file=$1 #tomcat    catalina.out       
file_size=`du $monitor_file | awk '{print $1}'`
if [ $file_size -ge 102400 ]
then
if [ ! -d $log_dir ]
then
mkdir /var/log/tomcat #          ,          ,         
fi
cp $1 /var/log/tomcat/log-`date +%Y-%m-%d-%H%M%S`.log #      
echo `date +%Y-%m-%d-%H:%M:%S`":    " >>/var/log/tomcat/split.log #      
echo "" > $1 #  tomcat log/catalina.out    
fi
説明:このスクリプトは簡単です。linuxはタイマーでログファイルのサイズをスキャンします。つまりファイルが100 M以上の場合、先に指定されたディレクトリにファイルをコピーして、元のtomcatのログファイルをクリアします。ここではcrontabでタイマーを使います。このコマンドの文法についてはここで多くは言いません。興味があるのは自分でgoogleです。ここではまだ小さい不足があります。毎分の時間でログファイルをスキャンするので、最後にファイルのサイズをカットします。
そしてタイマーを使って、タイミングよくこのスクリプトを実行します。
2:crontab-eでタイマーコードを編集します。
*/1****sh/lee_js/monitor_script.sh/opt/apache-tomcat-7.0.67/logs/catalina.out啣の最初のパスはシナリオのパスで、2番目のパラメータはtomcatのcatalina.outファイルの絶対パスです。
保存します
これでログカットを終わらせます。
注:crontabコマンドがない場合はyumでインストールできます。

yum install vixie-cron
yum install crontabs
以上は小编が皆さんに绍介したShell脚本カットtomcatのログファイルです。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。