轻量的自动化数据备份方式及工具

By Hugo on 2018-05-12, Updated 2019-11-21

我为啥这么在意数据备份这件事?
话说在2015年,我用过一台联想笔记本,操作系统是Windows 10,在某天下班后正常盒盖休眠,第二天早上打开电脑看到许多文件凭空消失了,并且看上去毫无规律,有些文件夹和里边的文件全部消失,有些则是文件夹还在,里边大部分文件消失了,只剩下一两个文件。
从此有两件事提高了优先级,一是及时备份,二是微软一生黑。

背景

  • 我目前主要的数据备份介质是几块外置硬盘,每块硬盘是全部数据的一个完整拷贝;
  • 日常需备份的文件主要包括许多Markdown、表格、脑图、源码之类的小文件和少量设计稿和工程源文件之类的大文件;
  • 因为外置硬盘不会一直都在手边,但每天产生的新数据又想要及时备份。

备份方案

  • 这里主要用到了MackupRsync time backup这两个工具,均轻量好用;
  • 前者主要用来备份应用程序的配置文件和dotfiles,适用于macOS和Linux;
  • 后者是一个shell脚本。可以实现类似于Apple Time Machine的「快照式」备份,但又可以灵活自行决定要备份的数据,而非ATM的整机备份,适用于Linux、macOS和Windows,使用Rsync实现。

我主要备份了这些数据

  • 使用Mackup备份应用程序的配置文件和dotfiles;
  • 将不同应用程序的需备份的数据文件放到一个目录内,之后通过软链接形式再链接回原来的位置;
  • 使用Rsync集合零散数据文件(无法通过软链接等形式处理);
  • 生成已安装的应用列表、各应用的插件列表;
  • 备份数据到u盘或移动硬盘:使用Rsync time backup完整备份,或使用Rsync增量备份。

用shell脚本把以上动作串起来,之后写成一个alias,每次敲一个命令就可以执行备份操作。我现在每次备份都是手动执行,你可以进一步折腾做成计划任务自动执行。