![轮换旧文件](https://linux22.com/image/672714/%E8%BD%AE%E6%8D%A2%E6%97%A7%E6%96%87%E4%BB%B6.png)
我有一个 cron 任务,每小时备份 3 个文件,它们是 SQL 备份 - 格式为name-name-bak-2015-12-1919:30:01.sql
我需要一种方法来每 7 天轮换并删除较旧的版本?
想到使用日志旋转并寻求建议
我正在使用 Debian 8
谢谢
克里斯
答案1
要添加 logrotate 脚本,您可以创建一个文件,并将其添加到 /etc/logrotate.d/
这是文件脚本内容:
/yourfolder/name-name-bak-*.sql {
weekly
missingok
rotate 14
compress
delaycompress
notifempty
create 640 root root
}
在这种情况下:
weekly
它将每周运行一次missingok
如果日志文件丢失,则继续下一个,而不发出错误消息rotate 14
日志文件会轮换 14 次,然后才会被移除或邮寄到邮件指令中指定的地址。如果计数为 0,则会移除旧版本,而不会轮换。compress
旧版本的日志文件默认使用 gzip 压缩。delaycompress
将前一个日志文件的压缩推迟到下一个轮换周期。这只有与压缩结合使用时才有效。当某些程序无法关闭其日志文件并因此可能继续在一段时间内写入前一个日志文件时,可以使用它。notifempty
如果日志为空则不旋转create 640 root root
设置轮换文件的用户组和权限
有关手册页的更多信息: http://www.linuxcommand.org/man_pages/logrotate8.html
要手动启动(或测试)脚本,可以使用以下命令:
logrotate --force /etc/logrotate.d/yourfilename