![如何在 Ubuntu 18.04 中使用 ZFS 定期自动备份我的系统文件?](https://linux22.com/image/927369/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%2018.04%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20ZFS%20%E5%AE%9A%E6%9C%9F%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我想要一个脚本,定期自动将选定的系统文件备份到我的 NAS,这些文件已保存在我的 fstab 中,以便在启动时挂载到 cifs。根据备份中要包含哪些文件夹?因此,我编写了以下脚本来备份到我的 NAS 上的“系统文件”文件夹:
#!/bin/bash
sudo rsync -aAXv --progress --delete /etc /NAS/System\ Files/
sudo rsync -aAXv --progress --delete /opt /NAS/System\ Files/
sudo rsync -aAXv --progress --delete /root /NAS/System\ Files/
sudo rsync -aAXv --progress --delete /snap /NAS/System\ Files/
sudo rsync -aAXv --progress --delete /usr/local /NAS/System\ Files/usr/
sudo rsync -aAXv --progress --delete /var /NAS/System\ Files/
一旦我解决了这些问题,我打算设置一个 cron 作业来安排此事。
在测试此代码的 /etc 行之后,我注意到存在许多权限错误,例如:
rsync: symlink "/NAS/System Files/etc/rc0.d/K01bluetooth" -> "../init.d/bluetooth" failed: Permission denied (13)
在这个答案,用户表示“备份它们(根目录中的某些文件)是没有意义的,甚至可能是有害的。”
有没有一种安全的方法可以实现此目的而不会出现任何错误或损害我的系统?任何帮助是极大的赞赏。
仅供参考,我知道我可以使用 Clonezilla 之类的程序创建磁盘映像,但我更愿意使用无需手动维护的解决方案。另外,不确定 Timeshift 是否会执行我尝试执行的操作,但由于我在 root 上运行 ZFS,Timeshift 给了我“设备未找到”错误,因为目前不支持 ZFS(截至 Timeshift 20.03)。
我已经使用 Apt-Clone 将我的应用程序、存储库和密钥备份到我的主文件夹,并且将 Duplicity 设置为将我的主文件夹备份到我的 NAS。
参考:
如何设置增量备份以包含 Ubuntu 18.04 上的主题和定制?
如何备份设置和已安装软件包的列表
用于备份 Ubuntu 机器的最简单的 NAS 设置是什么?
答案1
经过几天的努力,我终于能够通过更改备份命令和 NAS 上的设置来解决我的问题。
这是我更新后的脚本,我为其创建了一个 cron 作业:
#!/bin/bash
sudo rsync -aAXvlH --delete --exclude={"/bin/*","/boot/*","/dev/*","/home/*","/lib/*","/lib32/*","/lib64/*","/media/*","/mnt/*","/NAS/*","/Pool-1tb/*","/Pool-500gb/*","/proc/*","/run/*","/sbin/*","/srv/*","/sys/*","/tmp/*","/usr/bin/*","/usr/games/*","/usr/include/*","/usr/lib/*","/usr/lib32/*","/usr/libexec/*","/usr/sbin/*","/usr/share/*","/usr/src/*",".Trash*"} / /NAS/System\ Files/
以下是我使用的标志:
-a - Archive mode includes among other things, the options -o and -g, which preserves owners and groups. This requires that you run rsync as root.
-A - Preserve Access Control List.
-X - Preserve extended attributes.
-v - It will show the progress of the backup.
-l - Copy symlinks as symlinks.
-H - Preserve hard links.
为了解决我在 Synology 上运行 rsync 时遇到的大量符号链接错误,我必须转到Control Panel / File Services / SMB / Advanced Settings
并选中“允许共享文件夹内的符号链接”旁边的框。
如果您觉得这有帮助,请考虑投赞成票。谢谢!