轮换旧文件

轮换旧文件

我有一个 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

相关内容