数据备份脚本
#!/bin/sh
#保存备份个数
NUMBER=7
# 备份路径
BACKUPDIR=/home/backup
#待删除文件路径
DELFILEDIR=/tmp/backup
# 待备份文件路径
FILEDIR=/home/appdata
# 获取系统时间用于文件名格式化
TIME=` date +%Y-%m-%d_%H-%M-%S `
#如果文件夹不存在则创建
if [ ! -d $BACKUPDIR ];
then
mkdir -p $BACKUPDIR;
fi
if [ ! -d $DELFILEDIR ];
then
mkdir -p $DELFILEDIR;
fi
# 打包备份文件
tar -JcPf $BACKUPDIR/appdata_backup_$TIME.tar.xz $FILEDIR
#写创建备份日志
date "+%Y-%m-%d %H:%M:%S" &>> $BACKUPDIR/log.txt
echo "create $BACKUPDIR/appdata_backup_$TIME.tar.xz" &>> $BACKUPDIR/log.txt
#找出待删除的备份
DELFILE=`ls -l -crt $BACKUPDIR/*.tar.xz | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$NUMBER
COUNT=`ls -l -crt $BACKUPDIR/*.tar.xz | awk '{print $9 }' | wc -l`
if [ $COUNT -gt $NUMBER ]
then
#移动最早生成的备份,只保留NUMBER数量的备份
mv $DELFILE $DELFILEDIR/
#写待删除文件日志
echo "delete $DELFILE" &>> $BACKUPDIR/log.txt
fi
#rclone同步文件
rclone sync $BACKUPDIR/ aliyun:/vpsbackup/vaultwarden/ &>> $BACKUPDIR/log.txt
# 删除7天以前的备份
find $DELFILEDIR -atime +6 -type f -exec rm -rf {} \; &>> $BACKUPDIR/log.txt
#输出分隔符
echo "--------" &>> $BACKUPDIR/log.txt