logrotate是linux自带的日志分割工具,如果没有可以用yum安装
yum -y install logrotate
要配置日志分割定时任务,需要在/etc/logrotate.d/下创建一个名为catalina的配置文件
(注:logrotate.d目录下的配置文件是用作logrotate.conf的补充)
touch /etc/logrotate.d/catalina
以下是配置文件内容,可以选择vi/vim编辑catalina配置文件输入内容
/home/tomcat/logs/catalina.out {daily
rotate7
missingok
dateext
compress
notifempty
copytruncate
}
也可以选择用echo命令输入内容到catalina配置文件
1 echo -e "/home/tomcat/logs/catalina.out 2 { daily rotate7 missingok dateext compress notifempty copytruncate }">/etc/logrotate.d/catalina
这里 echo 必须加 -e 参数启用转义字符,引号必须使用 双引号。不然会出现无法换行等格式错误。
输入完记得
cat /etc/logrotate.d/catalina
查看一下配置文件内容是否正确。
确认无误后,修改/etc/anacrontab来决定任务执行时间
修改之前先对其进行备份
cp /etc/anacrontab /etc/anacrontab.bak
备份后对其进行修改
sed -i 's/START_HOURS_RANGE=3-22/START_HOURS_RANGE=1-22/g' /etc/anacrontab
START_HOURS_RANGE=3-22指的是任务在凌晨三点到二十二点之间执行,我们想让它在凌晨1~22点执行,故修改为
START_HOURS_RANGE=1-22
修改完之后日志分割定时任务就配置完成了
附上批处理命令:
pssh -h ip.list -P 'touch /etc/logrotate.d/catalina; echo -e "/home/tomcat/logs/catalina.out { daily rotate7 missingok dateext compress notifempty copytruncate }">/etc/logrotate.d/catalina; cp /etc/anacrontab /etc/anacrontab.bak; sed -i 's/START_HOURS_RANGE=3-22/START_HOURS_RANGE=1-22/g' /etc/anacrontab'
还原命令:
pssh -h ip.list -P 'mv /etc/anacrontab.bak /etc/anacrontab;rm -f /etc/logrotate.d/catalina'
至此,日志分割定时任务配置完成。