|
第一段代码指定了数据路径、备份路径、脚本路径以及昨天和今天的备份路径。第二段代码调用 rsync 命令。最后一段代码执行 deleteOldBackups.sh 脚本,它会清除一些过期的没有必要的备份数据。如果不想频繁的调用 deleteOldBackups.sh,你也可以手动去执行它。
下面是今天讨论的备份策略的一个简单完整的示例脚本。
#!/bin/bashBACKUPDIR=/nas/backup/-
function listYearlyBackups() { for i in 0 1 2 3 4 5 do ls ${BACKUPDIR} | egrep "$(date +%Y -d "${i} year ago")-[0-9]{2}-[0-9]{2}" | sort -u | head -n 1 done}-
function listMonthlyBackups() { for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 do ls ${BACKUPDIR} | egrep "$(date +%Y-%m -d "${i} month ago")-[0-9]{2}" | sort -u | head -n 1 done}-
function listWeeklyBackups() { for i in 0 1 2 3 4 do ls ${BACKUPDIR} | grep "$(date +%Y-%m-%d -d "last monday -${i} weeks")" done}-
function listDailyBackups() { for i in 0 1 2 3 4 5 6 do ls ${BACKUPDIR} | grep "$(date +%Y-%m-%d -d "-${i} day")" done}-
function getAllBackups() { listYearlyBackups listMonthlyBackups listWeeklyBackups listDailyBackups}-
function listUniqueBackups() { getAllBackups | sort -u}-
function listBackupsToDelete() { ls ${BACKUPDIR} | grep -v -e "$(echo -n $(listUniqueBackups) |sed "s/ /|/g")"}-
cd ${BACKUPDIR}listBackupsToDelete | while read file_to_delete; do rm -rf ${file_to_delete}done
这段脚本会首先根据你的备份策略列出所有需要保存的备份文件,然后它会删除那些再也不需要了的备份目录。 (编辑:衢州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|