【发布时间】:2015-08-11 14:14:41
【问题描述】:
我正在尝试在 rsync 中编写一个脚本,以将每日备份保存在以创建日期命名的新目录中,然后在创建 30 天后将其删除。下面的代码有效,但它会很快填满我的记忆,因为 -u 选项不会看到目录结构中的几个文件已经存在于以前的备份中。有没有更好的方法来保留内存/带宽?我已经提到过 --delete 和 --backup-dir 选项,但我不知道它们将如何应用于这个特定场景。
#!/bin/bash
#User who's files are being backed up
BNAME=username
#directory to back up
BDIR=/home/username/BackThisUp
#directory to backup to
BackupDir=/var/home/username_local/BackupTo
#user
RUSER=$USER
#SSH Key
KEY=/var/home/username_local/.ssh
#Backupname
RBackup=`date +%F`
#Backup Server
BServ=backup.server
#Path
LPATH='Data for backup'
#date
DATE=`date +%F`
#make parent directory for backup
mkdir $BackupDir/$BNAME > /dev/null 2>&1
#Transfer new backups
rsync -avpHrz -e "ssh -i $KEY" $BNAME@$BServ:$BDIR $BackupDir/$BNAME/$DATE
find $BackupDir/$BNAME -type d -ctime +30 -exec rm -rf {} \;
【问题讨论】: