for+case+find综合运用删除过期数据

本文介绍了一个用于批量删除超过30天的老文件的Shell脚本。该脚本通过定义函数来灵活处理不同目录下的文件删除操作,并使用find、awk等命令实现了高效清理。文章详细展示了如何将多个类似的命令整合进一个易于维护的脚本中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我用的命令如下

find /backup/mx14/post/ -maxdepth 3 -type f -mtime +30 -print |awk -F/ '{print $1"/"$2"/"$3"/"$4"/"$5}' |head -100 |sort -u |xargs rm -rvf

for i in fmx1 mx1 mx2 mx14; do find /backup/$i/post/ -maxdepth 3 -type f -mtime +30 -print |awk -F/ '{print $1"/"$2"/"$3"/"$4"/"$5}'|sort -u |xargs rm -rvf; done

for i in mx4 mx5 mx25; do find /sdb/$i/post/ -maxdepth 3 -type f -mtime +30 -print |awk -F/ '{print $1"/"$2"/"$3"/"$4"/"$5}'|sort -u |xargs rm -rvf; done

for i in mx6 mx7 mx8 mx26; do find /sdc/$i/post/ -maxdepth 3 -type f -mtime +30 -print |awk -F/ '{print $1"/"$2"/"$3"/"$4"/"$5}'|sort -u |xargs rm -rvf; done

[root@gbackup1 ~]# for i in mx9 mx10 mx11 mx27; do find /sdd/$i/post/ -maxdepth 3 -type f -mtime +30 -print |awk -F/ '{print $1"/"$2"/"$3"/"$4"/"$5}'|sort -u |xargs rm -rvf; done

上面的命令一个个运行太麻烦了,我就把上面的命令综合到一起写了如下脚本:

#/bin/sh

fun_Del(){

find /sd$i/mx$j/post/ -maxdepth 3 -type f -mtime +30 -print |awk -F/ '{print $1"/"$2"/"$3"/"$4"/"$5}'|sort -u |xargs rm -rvf

}

for i in b c d e f g h

do

case $i in

b)

{for j in 4 5 25 ;do fun_Del();done;}

;;

c)

{for j in 6 7 8 26 ;do fun_Del();done;}

;;

d)

{for j in 9 10 11 27;do fun_Del();done;}

;;

e)
{for j in 12 13 15 28;do fun_Del();done;}
;;

f)
{for j in 16 17 18 31;do fun_Del();done;}
;;

g)

{for j in 19 20 21 29 30 ;do fun_Del();done;}

;;

h)

{for j in 22 23 24 ;do fun_Del();done;}

;;

esac
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值