我有一个备份脚本,可以压缩各种文件和目录,并创建.tgz档案。文件被命名,例如:
...
backup_2010-10-28.tar.gz
backup_2010-10-29.tar.gz
backup_2010-10-30.tar.gz
backup_2010-10-31.tar.gz
backup_2010-11-01.tar.gz我想管理这些文件,以便只保留最后5个备份,删除旧文件。
我能用日志旋转来完成这个任务吗?它们不是日志文件,已经被压缩了。它们在/root中而不是在/var/log中--我还能使用它吗?
谢谢
发布于 2010-11-01 10:18:05
日志旋转文件,所以答案是肯定的-可能,如果没有足够的权限,那么将它们放置在/backup或其他什么地方。检查旋转日志有哪些组和用户:-)。
日志旋转中有压缩选项,如果没有配置“压缩”,S就不会尝试。同样,在你的情况下,“旋转5”选项。
查看/etc/logrotate.d (或系统中存储的任何地方)。
发布于 2010-11-01 11:32:38
如果不对您的流程进行更改,则它本身将无法完成您在这里寻找的内容。这里的关键问题是,虽然log转速可以使用通配符,但如果这样做,它将不会将文件视为一个文件,而是尝试单独旋转所有文件,这肯定不是您想要的。
但是,只要最近的备份是在没有日期标记的情况下创建的,您就可以让它按照您描述的方式工作。例如,如果备份过程创建了/root/backup.tar.gz,则可以使用以下日志旋转配置:
/root/backup.tar.gz {
rotate 5
nocompress
dateext
dateformat _%Y-%m-%d
extension .tar.gz
missingok
}下面简要介绍了这些选项:
rotate 5 --删除前保留5次轮转nocompress --旋转后不要压缩文件dateext --使用日期作为旋转扩展,而不是递增数字。dateformat _%Y-%m-%d --设置要使用的日期扩展格式extension .tar.gz --使.tar.gz在旋转扩展后出现missingok --如果我们想要旋转的文件不在那里,不要担心它,继续前进(默认情况是抛出一个错误)。希望这能有所帮助!
发布于 2010-11-01 10:24:06
你不需要用日志旋转来完成它。只需使用这样的命令:
ls -1 /root/backup_* | sort -r | tail -n +6 | xargs rm > /dev/null 2>&1此命令将保留最近的5个文件,并删除其余的文件(如果有的话)。你可以把它用在cron的工作上。
https://serverfault.com/questions/196843
复制相似问题