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

我用的命令如下

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

你可能感兴趣的:(find)