首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志旋转:旋转非日志文件?

日志旋转:旋转非日志文件?
EN

Server Fault用户
提问于 2010-11-01 09:58:44
回答 4查看 24.9K关注 0票数 22

我有一个备份脚本,可以压缩各种文件和目录,并创建.tgz档案。文件被命名,例如:

代码语言:javascript
复制
...
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中--我还能使用它吗?

谢谢

EN

回答 4

Server Fault用户

回答已采纳

发布于 2010-11-01 10:18:05

日志旋转文件,所以答案是肯定的-可能,如果没有足够的权限,那么将它们放置在/backup或其他什么地方。检查旋转日志有哪些组和用户:-)。

日志旋转中有压缩选项,如果没有配置“压缩”,S就不会尝试。同样,在你的情况下,“旋转5”选项。

查看/etc/logrotate.d (或系统中存储的任何地方)。

票数 3
EN

Server Fault用户

发布于 2010-11-01 11:32:38

如果不对您的流程进行更改,则它本身将无法完成您在这里寻找的内容。这里的关键问题是,虽然log转速可以使用通配符,但如果这样做,它将不会将文件视为一个文件,而是尝试单独旋转所有文件,这肯定不是您想要的。

但是,只要最近的备份是在没有日期标记的情况下创建的,您就可以让它按照您描述的方式工作。例如,如果备份过程创建了/root/backup.tar.gz,则可以使用以下日志旋转配置:

代码语言:javascript
复制
/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 --如果我们想要旋转的文件不在那里,不要担心它,继续前进(默认情况是抛出一个错误)。

希望这能有所帮助!

票数 31
EN

Server Fault用户

发布于 2010-11-01 10:24:06

你不需要用日志旋转来完成它。只需使用这样的命令:

代码语言:javascript
复制
ls -1 /root/backup_* | sort -r | tail -n +6 | xargs rm > /dev/null 2>&1

此命令将保留最近的5个文件,并删除其余的文件(如果有的话)。你可以把它用在cron的工作上。

票数 26
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/196843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档