[root@linuxidc ~]# ll /var/log/log-file*
-rw-r--r-- 1 root root 10485760 Jun 19 11:33 /var/log/test/log-file
[root@linuxidc ~]# logrotate -vf /etc/logrotate.d/log-file
[root@linuxidc ~]# ll /var/log/log-file*
-rw-r--r-- 1 root root 0 Jun 19 11:33 /var/log/test/log-file
-rw-r--r-- 1 root root 10485760 Jun 19 11:22 /var/log/test/log-file-20180619
③ 选项注释
-f:选项来强制logrotate轮循日志文件
-v:参数提供了详细的输出
(5)设置logrotate定时任务
[root@linuxidc ~]# crontab -e
#auth root
#date 2018-06-19
00 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/log-file &>/dev/null
三、使用logrotate处理tomcat catalina.out日志过大问题
问题描述:一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。
1、定义tomcat的pid 文件
(1)修改catalina.sh 文件,定义Tomcat的pid文件的路径
[root@linuxidc ~]# vim /data/tomca/bin/catalina.sh
# Get standard environment variables
PRGDIR=`dirname "$PRG"`
CATALINA_PID=/var/run/tomcat.pid
(2)重启Tomcat,且查询pid
[root@linuxidc ~]# systemctl restart tomcat.service
[root@linuxidc ~]# cat /var/run/tomcat.pid
21924
2、配置切割设置
(1)配置切割
[root@linuxidc ~]# vim /etc/logrotate.d/tomcat_catalina
/data/tomcat/logs/catalina.out {
daily
rotate 15
missingok
notifempty
dateext
compress
delaycompress
sharedscripts
create 644 root root
postrotate
if [ -f /var/run/tomcat.pid ]; then
kill -USR1 `cat /var/run/tomcat.pid`
fi
endscript
}
(2)USR1信号解释
USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。
在没有执行kill -USR1 `cat ${pid_path}`之前,即便已经对文件执行了mv命令而改变了文件名称,tomcat还是会向新命名的文件" xxx.out_ 20180619"照常写入日志数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。
3、测试执行
[root@linuxidc ~]# logrotate -vf /etc/logrotate.d/tomcat_catalina
4、设置logrotate定时任务
[root@linuxidc ~]# crontab -e
#auth root
#date 2018-06-19
00 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat_catalina &>/dev/null
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx