linux日志轮询logrotate不执行的排故方法【原创】
故障现象
有个系统服务器重新搭建部署应用后发现nginx日志不轮询。手动执行logrotate命令能成功,但是自动执行不成功。
排查问题思路如下:
1、先看下配置文件是否正确,可以先手动执行
logrotate /etc/logrotate.conf
2、看下logrotate执行的结果
# cat /var/lib/logrotate.status logrotate state -- version 2 "/var/log/ConsoleKit/history" 2020-8-1 "/var/log/yum.log" 2020-7-28 "/var/log/salt/key" 2020-8-8 "/app/logs/http_error.log" 2020-9-18 "/var/log/dracut.log" 2020-7-28 "/var/log/salt/master" 2020-8-8 "/var/log/wtmp" 2020-7-28 "/app/logs/https_error.log" 2020-9-18 "/var/log/spooler" 2020-9-13 "/var/log/btmp" 2020-9-1 "/var/log/puppet/*log" 2020-9-17 "/var/log/xferlog" 2020-9-5 "/app/logs/http_access_combined.log" 2020-9-18 "/var/log/maillog" 2020-9-13 "/var/log/secure" 2020-9-13 "/var/log/salt/minion" 2020-9-13 "/app/logs/http_access.log" 2020-9-18 "/app/logs/https_access.log" 2020-9-18 "/var/log/messages" 2020-9-13 "/var/account/pacct" 2020-7-28 "/var/log/cron" 2020-9-13 "/var/log/vsftpd.log" 2020-9-5
3、logrotate是crontab执行的,涉及到以下俩个文件
# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0
有的服务还会在crontab设置定时执行,我的没有这个文件。
cat /etc/cron.d/nginx 55 23 * * * root sleep `perl -e "print int(rand(120))"` && /usr/sbin/logrotate -v -f /usr/local/nginx/conf/logrotate.conf
4、由于并没有发现问题,我的日志轮询不生效,为了先解决问题,只能自己写个crontab了
# 日志轮询 0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf
参考
Nginx日志归档logrotate配置失效不执行的问题排查记录 - 服务端开发 http://tabalt.net/blog/nginx-logrotate-execution-failure/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-09-18 -bash: /bin/grep: Argument list too long和 find: Arguments to -type should contain only one letter报错处理
2018-09-18 MySQL主从复制故障1595报错【原创】
2018-09-18 美团点评基于MGR的CMDB高可用架构搭建之路【转】
2018-09-18 Python os.walk文件遍历用法【转】
2017-09-18 MySQL常见错误代码说明