logrotate 工具不会自启动,依赖 cron 定时任务工具调起或其他程序调用执行
1. 检查 logrotate 运行记录
1.1. 查看待切分日志是否被切分
1
| ls -l -A /var/log/yourLogName.log
|
1.2. 检查环境有无安装 logrotate
1 2 3
| which logrotate # 或 ls -l /usr/sbin/logrotate
|
1.3. 检查 logrotate 自身配置
1.4. 检查有无对待切分日志文件的切分规则配置
检查有无 logrotate 对应文件的日志切分规则配置
1 2
| ls -l -A /etc/logrotate.d/ cat /etc/logrotate.d/yourLogName
|
1.5. 测试该文件对应的日志切分配置是否正确
手动(加载配置)执行日志切分:
- 先用 debug 参数测试(不会真正执行日志切分)
1 2 3 4
| # 调试执行 /etc/logrotate.d/frr 配置,为满足条件日志不会被轮转 /usr/sbin/logrotate -d /etc/logrotate.d/frr # -f 参数强制转储日志文件 /usr/sbin/logrotate -d -f /etc/logrotate.d/frr
|
- 手动调 logrotate 执行对应日志文件的切分(强制执行)
1
| /usr/sbin/logrotate -vf /etc/logrotate.d/frr
|
1.6. 查看 logrotate 的切分状态记录
logrotate 自身的日志:/var/lib/logrotate/status
1
| cat /var/lib/logrotate/status
|
2. cron 是否正常工作?
2.1. 检查有无安装 cron
2.2. 检测 cron 运行状态
2.2.1. 检查 cron 计划任务工具是否正在运行
1
| ps -ef | grep cron | grep -v grep
|
2.2.2. 检查 cron 有无定时调起logrotate的日志
1
| sudo grep -i "logrotate" /var/log/cron.log | tail -n 10
|
2.3. 检测 cron 中 logrotate 的定时配置文件?
2.3.1. 查看 cron 的定时调起配置
配置文件:/etc/anacrontab
(老版本为:/etc/crontab
)
2.3.2. 手动执行 cron 配置中 logrotate 的每日计划任务配置
- 查看每日任务对应 logrotate 的每日计划任务配置
1 2
| ls -l -A /etc/cron.daily/ cat /etc/cron.daily/logrotate
|
- 手动执行 cron 配置中 logrotate 的每日计划任务,检查能否成功调 logrotate 执行日志切分
1
| sudo /etc/cron.daily/logrotate
|
1 2
| ls -l /etc/cron.d/ cat /etc/cron.d/your_logrotate_cfg
|
2.4. 检测 cron 能否准时自行调起 logrotate 计划任务
通过上文查看 cron 的定时调起配置可知,cron 每天的定时任务会在 6:25 执行
- 在
/etc/cron.daily/logrotate
logrotate 计划任务配置文件末追加打日志代码:
1
| echo "$(date) logrotate runing" >>/tmp/logrotate.out
|
- 更改系统时间到 6:24:30,测试 cron 能否自动调起logrotate
1 2
| date -s "2021-08-26 10:06:30" # 设置系统时间 hwclock --systohc # 将系统时间同步到硬件
|
2.5. 重启 cron 服务
1 2 3 4 5 6 7 8 9
| # 重启 cron 服务方式1 service crond start # 启动服务 service crond stop # 关闭服务 service crond restart # 重启服务
# 重启 cron 服务方式2 /etc/init.d/cron stop # 关闭服务 /etc/init.d/cron start # 启动服务 /etc/init.d/cron restart # 重启服务
|
3. 参考文档