Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
linux定时备份日志需手动纳入logrotate管理:脚本输出到固定日志文件→配置独立logrotate规则→确保daily执行;示例规则含daily、size 10m、rotate 14、delaycompress等参数,并需验证语法与强制执行效果。

Linux 定时备份任务本身不自动管理日志,需要你主动把备份脚本产生的日志纳入 logrotate 管理体系。核心思路是:让备份脚本输出日志到固定文件 → 为该日志文件写独立的 logrotate 规则 → 确保 logrotate 每天按时执行。
让备份脚本写入可轮转的日志文件
不要依赖终端输出或临时重定向,应明确指定日志路径并确保权限可写:
- 在你的备份脚本(如
/root/scripts/backup.sh)末尾添加日志重定向,例如:./backup.sh >> /var/log/backup.log 2>&1 - 确保目标目录存在且属主有写权限:
sudo mkdir -p /var/log/backup && sudo touch /var/log/backup.log && sudo chown root:root /var/log/backup.log && sudo chmod 644 /var/log/backup.log - 如果脚本由 cron 调用,注意环境变量差异,建议在脚本开头显式设置 PATH 或使用绝对路径
为备份日志单独配置 logrotate 规则
在 /etc/logrotate.d/ 下新建配置文件(如 backup),内容示例:
/var/log/backup.log {<br> daily<br> missingok<br> compress<br> delaycompress<br> notifempty<br> create 0644 root root<br> rotate 14<br> size 10M<br>}
- daily:每天检查一次是否需轮转(配合系统默认的 daily cron)
- size 10M:日志达 10MB 就立即轮转,避免单日备份失败导致日志暴涨
- rotate 14:保留最近 14 个归档(含当前未压缩的 .1、已压缩的 .2.gz 等)
- delaycompress:上一轮的 .1 不压缩,等下次轮转时再压缩为 .2.gz,方便快速查看最新归档
验证配置并确认生效机制
配置后不能只等明天,要立刻验证:
- 语法检查:
sudo logrotate -d /etc/logrotate.d/backup(-d 是模拟运行,看是否报错) - 强制执行一次:
sudo logrotate -f /etc/logrotate.d/backup,然后检查/var/log/backup.log是否变成backup.log.1,原文件是否清空 - 确认系统级定时任务正常:
ls -l /etc/cron.daily/logrotate应存在且可执行;sudo systemctl status cron或systemctl status crond确保服务运行
进阶:轮转后触发清理或通知(可选)
若需在日志轮转后做额外动作(比如发邮件提醒、清理旧备份快照),可在配置中加入 postrotate 块:
postrotate<br> if [ -f /var/log/backup.log.1 ]; then<br> echo "Backup log rotated at $(date)" | mail -s "Log Rotation Alert" admin@example.com<br> fi<br>endscript
- 务必搭配
sharedscripts(放在花括号内第一行),否则每个匹配文件都会执行一遍脚本 - 脚本内避免调用交互命令(如
systemctl restart),除非确认备份服务确实需要重载日志句柄










