logrotate可以在任何时候从命令行手动调用
① 要调用为/etc/lograte.d/下配置的所有日志切割配置
[root@linuxidc ~]# logrotate /etc/logrotate.conf
② 要为某个特定的配置调用logrotate,执行一次切割任务测试
[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-1900 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 variablesPRGDIR=`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-1900 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat_catalina /dev/null
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-09/153979.htm
Docker的发展历程详述 为 Docker 中的 Nginx 配置 HTTPS