tomcat的catalina日志果断时间就会超大,无法进行查看,网上有很多种日志分割方法。本文主要研究通过linux的crontab定时任务分割tomcat日志的步骤:
- 首先准备sh执行脚本
以下脚本为分割log_path下的catalina.out日志,将该日志挪移到log_path/cron目录下并重命名为catalina.out.当前日期.log
#!/bin/sh
#需要进行分割log的路径,该脚本一般只修改这个路径就可以用
log_path=/home/webapp/apache-tomcat-7.0.61/logs
#获取当前日期
d='date +%Y-%m-%d'
#获取30天前的日期
d90='date -d'30 day ago' +%Y-%m-%d'
#cd到log_path路径下 并copy 日志文件到cron目录下
cd ${log_path} && cp catalina.out $log_path/cron/catalina.out.$d.log
#清空原日志文件
echo > catalina.out
#移除30天前的日志文件
rm -rf $log_path/cron/catalina.out.${d90}.log
- crontab定时任务
将脚本文件保存为.sh后缀的文件,放到linux服务器上。可以先sh运行一下看是否报错,如果报文件找不到等错误,首先检查下路径是否是对的,如果路径没有问题,则需要检查sh文件格式,通过以下步骤检查并设置脚本文件格式。
- vi命令 打开sh脚本
- 运行set ff查看文件格式是否为unix
- 如果文件格式不是unix,则运行 set ff=unix
- :wq保存并退出
重新运行sh脚本文件无问题,则配置crontab定时任务,定时直接脚本文件。
- crontab -e 打开crontab编辑;
- 编辑crontab每天晚上11点55分执行分割脚本
55 11 * * * sh 脚本目录/**.sh - :wq保存并退出。 crontab定时任务配置完成。
- 可以通过crontab -l 检查是否设置成功
OK,至此可以第二天看下是否日志被自动切割完成。