Tomcat 日志归档压缩操作详解

当 Tomcat 日志过大时,对外服务会停止。为解决这个问题,需要对日志进行管理。

具体方法步骤

利用Linux自带的logrotate程序来解决catalina.out的日志轮转问题

1.首先编辑logrotate.conf文件,打开compress选项(去掉注释)

[root@localhost ~]# cat /etc/logrotate.conf | grep -v "^$"| grep -v "#"

weekly

rotate 4

create

dateext

compress <<这一项

2.添加指定文件,在/etc/logrotate.d/目录下新建一个名为tomcat的文件(后面的注释要删掉)

[root@localhost ~]# cat > /etc/logrotate.d/tomcat <<EOF

/home/TianmaTomcat/logs/catalina.out{ #要轮转的文件

copytruncate # 创建新的catalina.out副本后,截断源catalina.out文件

su root root #用root权限

daily # 每天进行catalina.out文件的轮转

rotate 60 # 至多保留60个副本

missingok # 如果要轮转的文件丢失了,继续轮转而不报错

compress # 使用压缩的方式(节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右)

size 16M # 当catalina.out文件大于16MB时,就轮转

}

EOF

############################################

参数说明:

copytruncate #备份日志并截断源文件

nocopytruncate # 备份日志文件不截断

dateext #使用当期日期作为命名格式

notifempty #当日志文件为空时,不进行轮转

daily # 每天进行文件的轮转

size 16M # 当文件大于16MB时,就会轮转

rotate 30 #指定日志文件删除之前转储的次数

############################################

如果要拷贝多个路径下的tomcat日志,可以这样配置

3.给文件赋权

chmod -R 664 /etc/logrotate.d/tomcat

3.执行方式

①自动执行原理

每天晚上crond守护进程会运行在/etc/cron.daily目录中的任务列表;

与logrotate相关的脚本也在/etc/cron.daily目录中。运行的方式为"/usr/bin/logrotate /etc/logrotate.conf";

/etc/logrotate.conf文件include了/etc/logrotate.d/目录下的所有文件。还包括我们上面刚创建的tomcat文件;

/etc/logrotate.d/tomcat文件会触发/usr/local/apache-tomcat-8.0.28/logs/catalina.out文件的轮转。

②手动执行:logrotate /etc/logrotate.conf

③只轮转刚刚的tomcat配置文件:logrotate --force /etc/logrotate.d/tomcat

logrotate -fv /etc/logrotate.d/tomcat (查看详细)

4、自动执行可能会出现权限不足的报错,这时,需要 配置定时任务来实现(每天执行一次)

crontab -e

0 0 * * * /usr/sbin/logrotate --force /etc/logrotate.d/tomcat

可以修改定时任务配置 crontab -e

或者删除 crontab -r

查看当前系统登录用户的Crontab命令集合 crontab -l

3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效,例如:

20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh

二、创建一个任务文件

1、命令行输入crontab -e会自动打开一个空文件:

# crontab -e

2、输入a或者i可以进入编辑状态,可输入任务代码。代码格式可以进入/etc/crontab查看

# cd /etc

# cat crontab

二、保存文件

先按Esc键,然后输入“:wq”

三、查看文件

保存成功的文件去哪里了呢?在/var/spool/cron/下面

# cd /var/spool/cron

# ls

这里可以看到一个root文件,因为我用的root账号登录,所以生成了一个root文件。

通过cat命令可以看到这个文件的内容就是前面编辑的内容。

参数配置

dateext 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,没有这个配置项会附加一个小数点加一个数字序号.

dateformat 配合dateext使用可以为切割后的日志加上YYYYMMDD格式的日期,如dateformat -%Y%m%d

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值