SHELL脚本备份策略

1.备份的目标为目录
 
#!/bin/bash
cd /opt/backup
NUM1=$(/bin/ls -l |grep "^d"|awk '{print $9}'|wc -l)
NUM2=$(/usr/bin/expr $NUM1 - 3)
/bin/ls -l |grep "^d"|awk '{print $9}'|/bin/sed -n "1,$NUM2 p"|xargs rm -rf
 
 
2.备份的目标为文件
 
#!/bin/bash
cd /opt/backup
NUM1=$(ls -l |grep "jar"|awk '{print $9}'|wc -l)
NUM2=$(expr $NUM1 - 3)
ls -l |grep "jar"|awk '{print $9}'|sed -n "1,$NUM2 p"|xargs rm -rf
 
 
3. 删除15天以前的备份文件夹
 
#!/bin/bash
#定期清理15天以前的数据,所有的数据保留最近15天的备份
find /databack/ -type d -mtime +15 -print | xargs rm -rf
 
完整版:
 
#!/bin/bash
bakpath=/root/download/test  #设置备份文件所在路径,注意使用rm -rf命令。
if [-d $bakpath ];then
	cd $bakpath
	NUM1=$(ls -l |grep -v "^d" |awk '{print $9}' |wc -l)
	NUM2=$(expr $NUM1 - 3)     #设置保留的份数,此处为3
	cd $bakpath && ls -l |grep "jar" |awk '{print $9}' | sed -n "1,$NUM2 p" |xargs  rm -rf 
	echo "Clean backup files successfully!"
else
	echo "Warning,the bakpath not exist!"
fi

 

 
 
posted @ 2020-03-23 14:46  heycomputer  阅读(130)  评论(0编辑  收藏  举报