首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux命令+删除除最后5个按日期排序的快照文件

linux命令+删除除最后5个按日期排序的快照文件
EN

Unix & Linux用户
提问于 2022-08-07 15:46:36
回答 3查看 103关注 0票数 -3

/zookeeper/version-2下,我们有许多动物园管理员快照文件。

代码语言:javascript
复制
.
.
.

-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:51 snapshot.5d00011991
-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:53 snapshot.5d00011992
-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:56 snapshot.5d00011993
-rw-r--r-- 1 zookeeper hadoop 495333235 Aug  4 06:18 snapshot.5d0001e0b4
-rw-r--r-- 1 zookeeper hadoop 495326760 Aug  5 11:54 snapshot.5d0003660f
-rw-r--r-- 1 zookeeper hadoop 495335787 Aug  6 08:39 snapshot.5d00047faf
-rw-r--r-- 1 zookeeper hadoop 495335268 Aug  7 01:26 snapshot.5d000563eb

我需要按日期对快照文件进行排序,并删除除最近5个快照文件之外的所有快照文件。所有不是快照的其他文件都应该保留下来。

我创建了以下cli语法,以便删除除最后5个按日期排序的快照文件之外的所有快照文件,但不知道如何将其与find命令集成

代码语言:javascript
复制
ls -ltr zookeeper/version-2 | grep snapshot  | head -n -5 | xargs rm -f

注意,最后的目标是在cron作业中设置find命令( crontab )

预期产出实例

代码语言:javascript
复制
-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:56 snapshot.5d00011993
-rw-r--r-- 1 zookeeper hadoop 495333235 Aug  4 06:18 snapshot.5d0001e0b4
-rw-r--r-- 1 zookeeper hadoop 495326760 Aug  5 11:54 snapshot.5d0003660f
-rw-r--r-- 1 zookeeper hadoop 495335787 Aug  6 08:39 snapshot.5d00047faf
-rw-r--r-- 1 zookeeper hadoop 495335268 Aug  7 01:26 snapshot.5d000563eb
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2022-08-07 16:12:27

直接删除动物园管理员快照可能会对hadoop集群产生不可预测的结果。为此目的有具体的命令:

代码语言:javascript
复制
zkCleanup.sh -n 5
票数 4
EN

Unix & Linux用户

发布于 2022-08-07 16:28:34

zsh中:

代码语言:javascript
复制
rm -f /zookeeper/version-2/snapshort.*(N.om[6,-1])

om om着色时间排序(最新的第一个像ls -t一样)的地方,.限制为常规文件,N启用N空值,[6,-1]选择第6到最后一个。如果只有不到6个文件,则不带任何参数地调用rm -f,但不应该抱怨它。

票数 4
EN

Unix & Linux用户

发布于 2022-08-07 16:00:18

编辑:好的,那些(正确的)评论对我来说太多了。谢谢。我钻研了这个。其实比我想象的要难。至少解决了“无档案发现”的案子。如果没有发现,grep将生成一个非零返回码。干杯。

代码语言:javascript
复制
find /zookeeper/version-2 -type f -name 'snapshot.*' | grep . | \
xargs -I% -n1 bash -c 'ls -tr "$@" || exit 255' _ % | head -n -5 | \
xargs echo rm -v 

删除回波以真正删除它们。

是的:我觉得它也很丑。

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

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

复制
相关文章

相似问题

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