加入收藏 | 设为首页 | 会员中心 | 我要投稿 衢州站长网 (https://www.0570zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

树莓派自建NAS云盘之——数据自动备份

发布时间:2018-10-18 03:43:03 所属栏目:建站 来源:Manuel Dewald
导读:副标题#e# 【51CTO技术沙龙】10月27日,让我们共同探索AI场景化应用实现之道 把你的树莓派变成数据的安全之所。 在《树莓派自建 NAS 云盘》系列的 第一篇 文章中,我们讨论了建立 NAS 的一些基本步骤,添加了两块 1TB 的存储硬盘驱动(一个用于数据存储,一

第一段代码指定了数据路径、备份路径、脚本路径以及昨天和今天的备份路径。第二段代码调用 rsync 命令。最后一段代码执行 deleteOldBackups.sh 脚本,它会清除一些过期的没有必要的备份数据。如果不想频繁的调用 deleteOldBackups.sh,你也可以手动去执行它。

下面是今天讨论的备份策略的一个简单完整的示例脚本。

  1. #!/bin/bash
  2. BACKUPDIR=/nas/backup/
  3.  
  4. function listYearlyBackups() {
  5. for i in 0 1 2 3 4 5
  6. do ls ${BACKUPDIR} | egrep "$(date +%Y -d "${i} year ago")-[0-9]{2}-[0-9]{2}" | sort -u | head -n 1
  7. done
  8. }
  9.  
  10. function listMonthlyBackups() {
  11. for i in 0 1 2 3 4 5 6 7 8 9 10 11 12
  12. do ls ${BACKUPDIR} | egrep "$(date +%Y-%m -d "${i} month ago")-[0-9]{2}" | sort -u | head -n 1
  13. done
  14. }
  15.  
  16. function listWeeklyBackups() {
  17. for i in 0 1 2 3 4
  18. do ls ${BACKUPDIR} | grep "$(date +%Y-%m-%d -d "last monday -${i} weeks")"
  19. done
  20. }
  21.  
  22. function listDailyBackups() {
  23. for i in 0 1 2 3 4 5 6
  24. do ls ${BACKUPDIR} | grep "$(date +%Y-%m-%d -d "-${i} day")"
  25. done
  26. }
  27.  
  28. function getAllBackups() {
  29. listYearlyBackups
  30. listMonthlyBackups
  31. listWeeklyBackups
  32. listDailyBackups
  33. }
  34.  
  35. function listUniqueBackups() {
  36. getAllBackups | sort -u
  37. }
  38.  
  39. function listBackupsToDelete() {
  40. ls ${BACKUPDIR} | grep -v -e "$(echo -n $(listUniqueBackups) |sed "s/ /|/g")"
  41. }
  42.  
  43. cd ${BACKUPDIR}
  44. listBackupsToDelete | while read file_to_delete; do
  45. rm -rf ${file_to_delete}
  46. done

这段脚本会首先根据你的备份策略列出所有需要保存的备份文件,然后它会删除那些再也不需要了的备份目录。

(编辑:衢州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读