题目:
1. 源文件夹A,A下面还有多层级的结构
2. 备份文件夹B,每周六晚上2点发起备份,以当天日期命名建新文件夹,将A文件夹下面所有文件和目录全部拷贝过去
3. 定期循环清理,B文件夹下最多只能保存6个备份,当已经满6个备份文件后,再开始新的备份时,删除一个备份(删除的备份文件有条件,参考第4点)
4. 保留距离最近的4个备份,然后,再之前的两个月各保留一个备份
代码:
#!/bin/bash
#将备份时间写入log日志中
echo "----------------------------" >> log
echo "backup time:$(date +%Y%m%d)" >> log
echo "----------------------------" >> log
#1.备份文件夹
#需要被备份的路径
AFILE=/mnt/hgfs/share/A
#需要备份的路径
BFILE=/mnt/hgfs/share/B
#现在时间
NOW_TIME=$(date +%Y%m%d)
#判断目录是否存在,不存在就创建
[ -d $BFILE ] || mkdir $BFILE
#将A目录拷贝到B目录下并以时间命名
cp -r $AFILE $BFILE/$NOW_TIME && echo " 备份完成! " || echo "备份失败,请检查错误!"
echo "---------------------------------"
#2.删除文件夹
#转到备份目录下
cd /mnt/hgfs/share/B
#查找当前目录下文件夹个