Linux Shell脚本_备份文件的批量删除 2.0
这次是整合了开发时改正的多个版本,比较Linux Shell脚本_备份文件的批量删除 1.0有了很大的改善,不仅可以删除备份文件,还可以更新保存备份文件名的文本文件
首先是back.recovery的内容 这是个文本文件,内容是所有备份文件的文件路径以及文件名
这是对应的备份文件
现在我们就要保存4.1和3.31所有的文件,其余的全部删除,看代码: 首先是删除back.recovery中过期的文本
- #!/bin/sh
- BACK="back。recovery"
- #最后一行内容
- lastline=`tail -n 1 $BACK`
- #最后一行的时间----最新时间
- lastdate=${lastline:0-19:10}
- #!/bin/sh
- BACK="testback"
- #最后一行内容
- lastline=`tail -n 1 $BACK`
- #最后一行的时间----最新时间
- lastdate=${lastline:0-19:10}
- #总行数
- totallines=`grep -c "" $BACK `
- #最新文件的行数
- lastlines=`grep -c "$lastdate" $BACK `
- #除了最新文件所有剩余文件最后一行行号
- lastoneline=`expr $totallines - $lastlines`
- echo $lastoneline
- #倒数第二新的文件
- lastonefile=`sed -n "$lastoneline"p $BACK `
- echo $lastonefile
- #倒数第二新的时间
- lastonedate=${lastonefile:0-19:10}
- echo "最新时间点:"$lastestdate ---"倒数第二新时间点:"$lastonedate
- #倒数第二新文件行数
- lastonelines=`grep -c "$lastonedate" $BACK`
- #要保留的文件开始行号
- saveline=`expr $totallines - $lastlines - $lastonelines + 1`
- echo $saveline
- #把最后两个时间点的文件保存
- echo "deleting files .........."
- #把把文本保存到一个过渡文件中(testbacks) 然后再将其删除
- sed "${saveline},${totallines} w testbacks" $BACK
- mv testbacks $BACK
- rmdir testbacks
- echo "text has deleted ..........."
然后是删除过期的文件
- echo "begin deleting files......"
- #移动文件到临时文件夹
- mv open* temps/
- cd temps/
- #最新文件
- lastestfile=`ls -t|head -n1`
- echo "最新的文件" $lastestfile
- #最新日期 形式为20110101
- lastestdate=`ls -la $lastestfile --time-style '+%Y%m%d'| awk '{print$6}'`
- #常量,存放最新日期
- LASTEST=$lastestdate
- echo "最新的时间" $lastestdate
- #最老文件
- oldfile=`ls -rt|head -n1`
- echo "最老的文件" $oldfile
- #最老日期
- olddate=`ls -la $oldfile --time-style '+%Y%m%d'| awk '{print$6}'`
- #把最新两个时间点文件移出
- for var in $(seq 1 2)
- do
- while [ "$lastestdate" -eq "$LASTEST" ];do
- echo "移出到外部文件夹" $lastestfile
- mv $lastestfile ..
- lastestfile=`ls -t|head -n1`
- echo "最新文件" $lastestfile
- lastestdate=`ls -la $lastestfile --time-style '+%Y%m%d'| awk '{print$6}'`
- echo "lastestdate" $lastestdate
- oldfile=`ls -rt|head -n1`
- done
- #更改最新时间
- LASTEST=$lastestdate
- echo "最新时间" $LASTEST
- done
- #删除剩余的也就是过期的文件
- rm open*
- rmdir temps
相关推荐
IT之家 2020-03-11
graseed 2020-10-28
zbkyumlei 2020-10-12
SXIAOYI 2020-09-16
jinhao 2020-09-07
impress 2020-08-26
liuqipao 2020-07-07
淡风wisdon大大 2020-06-06
yoohsummer 2020-06-01
chenjia00 2020-05-29
baike 2020-05-19
扭来不叫牛奶 2020-05-08
hxmilyy 2020-05-11
黎豆子 2020-05-07
xiongweiwei00 2020-04-29
Cypress 2020-04-25
冰蝶 2020-04-20