使用sh脚本或Python查找&;删除所有以特定字符串为前缀的超过3天的目录,但忽略唯一结果
正如标题所示,我希望找到所有前缀为“LB”字符串的目录。 在大多数情况下,所有目录通常都有一个后缀“[0-9]”,因为每天都有一个新目录通过定制的备份过程创建。例如:使用sh脚本或Python查找&;删除所有以特定字符串为前缀的超过3天的目录,但忽略唯一结果,python,shell,unix,sh,esxi,Python,Shell,Unix,Sh,Esxi,正如标题所示,我希望找到所有前缀为“LB”字符串的目录。 在大多数情况下,所有目录通常都有一个后缀“[0-9]”,因为每天都有一个新目录通过定制的备份过程创建。例如: drwxr-xr-x. 2 root root 4096 Mar 5 10:00 TB-setcluster drwxr-xr-x. 2 root root 4096 Mar 6 10:00 TB-setcluster_1 drwxr-xr-x. 2 root root 4096 Mar 7 10:00 TB-setclus
drwxr-xr-x. 2 root root 4096 Mar 5 10:00 TB-setcluster
drwxr-xr-x. 2 root root 4096 Mar 6 10:00 TB-setcluster_1
drwxr-xr-x. 2 root root 4096 Mar 7 10:00 TB-setcluster_2
drwxr-xr-x. 2 root root 4096 Mar 8 10:00 TB-setcluster_3
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster_3
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster_2
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster_1
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster
drwxr-xr-x. 2 root root 4096 Mar 5 13:02 TB-testcluster
drwxr-xr-x. 2 root root 4096 Mar 5 13:02 TB-preprod-cluster
这就是说,如果任何备份失败,我将不会创建增量目录,这意味着如果接下来3天的备份失败,我可能只会有一个备份。
在这种情况下,我不想删除我可能拥有的一份副本
有人能建议最好的方法吗?我在一个ESXI机器上运行,它是一个精简的Linux内核,因此只有BourneShell可以用它编写脚本,或者可能是python(我对python有一点了解)
我有一个find命令,通过运行以下命令获取唯一名称的输出:
find /root/test/ -depth -name "TB*" -type d -mtime 3| sort | awk -F'/' '{print $4}' | sed -r 's/_[0-9]+$//g' | uniq -u
但我不确定如何确保上述命令的每个结果都被排除在任何删除过程之外
任何帮助都将不胜感激。如果我这样做,并且我想确定,我可能会这样做
find
命令将所有珍贵文件移动到另一个目录
mv$(查找…| awk…| sed…| uniq…)特殊目录