日志切割的意义:
在生产环境中, 当我们使用 tomcat 服务时, 如果用户量过多, 有没有日志切割, 将会产生很大的日志, 一天的日志都能有好几个 G 大小. 当我们需要查看日志记录时, 非常麻烦. 因此, 日志切割是很有必要的!
1. 编写 shell 脚本
- VIM fengelog.sh
- # 脚本声明
- #!/bin/bash
- . /etc/profile
- . ~/.bash_profile
- # 定义日志文件目录
- applog_path=/usr/local/apache-tomcat-App/logs
- sapplog_path=/usr/local/apache-tomcat-sapp/logs
- # 定义日期格式
- d=`date +%Y-%m-%d-%H:%M`
- d15=`date -d'15 day ago' +%Y-%m-%d` #15 天的日期
- # 切割日志
- cd ${
- applog_path
- } && cp catalina.out $applog_path/$d.log #日志备份
- echo> catalina.out #原日志清空
- rm -rf $applog_path/${
- d15
- }*.log #保留 15 天的日志
- cd ${
- sapplog_path
- } && cp catalina.out $sapplog_path/$d.log #日志备份
- echo> catalina.out #原日志清空
- rm -rf $sapplog_path/${
- d15
- }*.log #保留 15 天的日志
2. 执行 shell 脚本
- chmod +x fengelog.sh
- sh fengelog.sh
3. 添加定时任务
- crontab -e
- 0 */3 * * * sh /root/fengelog.sh #设置每 3 个小时切割一次日志
注意:
1. 脚本中开头. /etc/profile ,. ~/.bash_profile 是为了让定时任务可以成功执行添加的环境变量, 如果不加, 定时任务不会执行!
2. 日志保留的时间和一次切割 tomcat 日志的数量, 多长时间切割日志都是可以自定义的.
3. 建议脚本写好后, 先自己运行一下, 确定没有问题, 在加入定时任务里面!
来源: http://www.bubuko.com/infodetail-3383373.html