我买了一个外置USB3驱动器来备份WD MyCloud NAS(直接插入NAS上的USB3),并开始搜索rsync脚本来模拟Time Machine风格的备份。
我找到了一个我喜欢的,但它没有像我预期的那样工作。 因此,我希望你能够对这个问题有所了解,并建议可以/应该做些什么,首先,让它发挥作用,其次,建议如何做到这一点,以获得类似于Time Machine的结果样式快照备份。
我找到了我开始使用的脚本:
https://bipedu.wordpress.com/2014/02/25/easy-backup-system-with-rsync-like-time-machine/
他打破了这个过程:
所以在这里我首先创建一个将在名称中使用的“日期”变量 备份文件夹的位置,以便轻松了解备份/快照的时间 制成。
然后使用带有一些参数的rsync(有关更多信息,请参阅man rsync 详情):
-a =存档模式(仅发送更改的部分)
-P =给出进度信息 - (可选)
-delete =从备份中删除已删除的文件 从源头删除
-log-file =将日志保存到文件中(可选)
-exclude =从备份中排除某些文件夹/文件。这是 相对于源路径!!!不要在这里使用绝对路径!
-link-dest =链接到最新的备份快照
/ mnt / HD / HD_a2 / =源路径
/ mnt / USB / USB2_c2 / MyCloud / Backups / back- $ date =目标文件夹,它 将包含来自源的所有内容。
然后通过使用rm我删除旧备份的旧链接( “当前”链接)然后我用一个新的软链接替换它 新创建的快照。
所以现在每当我点击“当前”时,我实际上去了最新的备份 。而且因为每次我做备份时,日期都不同了 将保留旧快照。因此,每天我都会有快照。
这是我的脚本版本基于他的大纲。
#!/bin/bash
date=`date “+%Y%m%d-%H-%M”`
rsync -aP --delete --log-file=/tmp/log_backup.log --exclude="lost+found" --exclude="Anti-Virus Essentials" --exclude=Nas_Prog --exclude=SmartWare --exclude=plex_conf --exclude=Backup --exclude=TimeMachineBackup --exclude=groupings.db --link-dest=/mnt/USB/USB2_c2/MyCloud/Backups/Current /mnt/HD/HD_a2/ /mnt/USB/USB2_c2/MyCloud/Backups/back-$date
rm -f /mnt/USB/USB2_c2/MyCloud/Backups/Current
ln -s /mnt/USB/USB2_c2/MyCloud/Backups/back-$date /mnt/USB/USB2_c2/MyCloud/Backups/Current
因此,如果我理解他的想法,那么第一次初始备份就在这里。到/ mnt / USB / USB2_c2 / MyCloud /备份/电流。
然后在后续备份中,脚本在/ mnt / USB / USB2_c2 / MyCloud / Backups / Current / named'back-2015-12-20T09-19'或备份发生的任何日期创建一个新目录。< / p>
这是我在实际发生的事情上有点迷失的地方。
它将带时间戳的文件夹写入/ Backups / Current /目录,并且也写入/ Backups /目录。所以我现在在两个不同的目录中有2个版本的带时间戳的文件夹。
我很困惑现在最实际的最新备份文件集驻留在哪里。
我想到的是脚本会运行,而且任何未更改的文件都会创建一个从“当前”文件夹到带时间戳文件夹的链接。
我确定我在这里有问题,并希望有人可以指出错误和/或建议更好的方法。