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