编写一个.sh文件,并放到tomcat下的bin目录,在crontab中自动执行,shell脚本如下:
cd `dirname $0`
d=`date +%Y%m%d`
d49=`date -d'49 day ago' +%Y%m%d`
cd ../logs/
cp catalina.out catalina.out.${d}
echo "" > catalina.out
rm -rf catalina.out.${d49}
-------------------------------------------------------------------------------------------------------------
使用jar包:
commons-logging.jar
log4j.jar
新建配置文件
log4j.properties
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.newlog #设定日志文件名
log4j.appender.R.MaxFileSize=100KB #设定文件到100kb即分割
log4j.appender.R.MaxBackupIndex=10 #设定日志文件保留的序号数
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
目录结构:
tomcat/common/classes/log4j.properties
tomcat/common/lib/commons-logging.jar
tomcat/common/lib/log4j.jar
--------------------------------------------------------------------------------------------------------------
linux设置定时任务:
crontab -e
10 0 * * * /home/..../xxx.sh
--------------------------------------------------------------------------------------------------------------
遇到的问题:LInux运行shell脚本提示No such file or directory的错误
1.在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行.
例:(UltraEdit)File-->Conversions-->DOS-->UNIX.
2.在linux下转换
用vim打开sh文件,输入:
:set ff
显示fileformat=dos,输入:
:set ff=unix
保存退出即可
:wq