NAS作为数据备份中心,但需要经常清理历史备份文件,仅需要保留一部分备份文件即可。由于NAS是改造后的Liunx 操作系统,故有些命令无法直接执行,因此独立写了一个脚本来搜索历史备份文件,并记录待删除文件信息,自动生成脚本删除文件。
Liunx查找删除历史备份文件批命令脚本
具体执行脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #!/bin/bash NOW=$(date +"%Y%m%d%M%S") FILE="NeedDeleteFile_$NOW.sh" function findFile(){ echo "# find from $1 -mtime $2" >> $FILE find $1 -mtime $2 -type f \( -iname "*.bak" -o -iname "*.log" -o -iname "*.zip" -o -iname "*.rar" \) -print0 | while IFS= read -r -d $'\0' line; do echo "rm \"$line\";" >> $FILE done } echo "#!/bin/bash" >> $FILE echo "# $NOW create file." >>$FILE findFile "/share/MD0_DATA/DC/" "+30" findFile "/share/MD0_DATA/YX/" "+10" echo "echo \"\$(date +%Y%m%d%M%S) DONE.\"" >> $FILE bash $FILE
|
脚本说明
脚本执行时,会在当前目录生成一个 NeedDeleteFile_YYmmDDMMSS.sh
的脚本文件,再将搜索到的指定类型,指定日期前的文件依次生成 rm
删除命令并cat
到自动脚本中。最后执行该脚本,执行删除。
这里当然也可以在变量文件时便删除文档,但我还是希望保证安全性,先统一写入脚本文件中,再执行脚本进行删除。好处是为了安全性,可以注释掉掉末尾的bash $FILE
,而手工执行脚本。