首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用删除旧备份

使用删除旧备份
EN

Unix & Linux用户
提问于 2022-06-12 07:16:35
回答 1查看 219关注 0票数 0

我一直在使用此命令删除服务器上的旧备份:

代码语言:javascript
复制
find /backups/etcbak/ -mtime +7 -exec rm {} \; && find /backups/varlogsbak/ -mtime +2 -exec rm {} \; && find /backups/varmysqlbak/ -mtime +7 -exec rm {} \; 

上面的命令可以很好地删除目标目录中的实际文件。

我的问题是:

如何使上面的命令也移除子目录?

(我添加了一个mysql备份脚本,它根据当前日期在目标目录中创建子目录)。

我试图按以下方式调整上面的命令:

代码语言:javascript
复制
find /backups/etcbak/ -mtime +7 -exec rm -rf {} \; && find /backups/varlogsbak/ -mtime +2 -exec rm -rf {} \; && find /backups/varmysqlbak/ -mtime +7 -exec rm -rf {} \; && find /backups/varmongobak/ -mtime +7 -exec rm -rf {} \;

但是它根本不会删除旧的子目录。

目标是删除目标目录中可能存在的文件和目录。

例如:

/backups/etcbak/filename (where "filename" is deleted after 7 days)

/backups/etcbak/dirname (其中名为"dirname“的子目录及其内容在7天后也被删除)

有人知道怎么破解这个吗?thx

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-06-12 09:45:52

我的方法是按照您的标准删除文件,然后删除空目录。

代码语言:javascript
复制
find /backups/etcbak /backups/varmysqlbak /backups/varmongobak -depth -type f -mtime +7 -delete
find /backups/varlogsbak -depth -type f -mtime +2 -delete

find /backups/etcbak /backups/varlogsbak /backups/varmysqlbak /backups/varmongobak -mindepth 1 -depth type d -delete 2>/dev/null

严格地说,-depth并不是-delete所暗示的那样,但是我认为看到它并提醒它它是活动的是有用的。

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

https://unix.stackexchange.com/questions/705874

复制
相关文章

相似问题

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