简短回答:有两种方法。如果 NAS 支持 Time Machine,先在 NAS 设置中开启,然后在“系统设置”的“通用”>“Time Machine”中添加该共享。
也可以在 Finder 中连接共享文件夹,像普通磁盘一样备份到那里。这样就绕过了 Time Machine 磁盘映像,而它正是网络备份中最容易出问题的部分。
大多数 NAS 软件都有 Time Machine 选项:它会创建一个共享,通常带有容量配额,并进行广播,让你的 Mac 能找到它。在 Mac 上依次进入“系统设置”、“通用”、“时间机器”、“添加备份磁盘”,该共享就会出现。
需要知道的事:
rsync如果 NAS 支持 SSH,就直接复制过去,无需挂载任何东西:
rsync -aE --delete ~/Documents/ [email protected]:/volume1/backup/Documents/
比通过挂载的共享更快,而且在挂载缺失时不会悄无声息地什么都不做:如果 NAS 无法访问,命令会明确地失败。
先设置好密钥,免得它在定时运行时卡在等待密码:
ssh-keygen -t ed25519
ssh-copy-id [email protected]
注意事项和其他地方一样:rsync 只保留一份没有历史记录的镜像,而且不会对存储的数据加密。完整的 rsync 指南对这两点都有介绍。
在 Finder 中挂载该共享后,它会像其他磁盘一样出现在 /Volumes 下。任何能写入文件夹的工具都可以使用它,包括 Copy Shelter:它提供版本,在任何数据离开 Mac 之前加密,并会读回备份,按哈希值核对每一块数据。
在 NAS 上,写入前加密比人们以为的更重要。NAS 是一台有操作系统、网页界面的小电脑,而且常常有一个被以前的你转发到互联网的端口。它读不懂的字节,在它被攻破时仍然属于你。
这种故障让网络备份与其他所有备份都不同,论坛里满是关于它的帖子。
当共享干净地断开时,挂载点会消失,写入会立即失败。这没问题。更常见的情况是共享停止响应却没有断开:NAS 进入了睡眠,交换机断了链路,Mac 比网络先醒来。挂载点还在,ls 仍能列出它,而对它的写入会被阻塞。
不是失败,而是阻塞。进程会处于不可中断的等待状态,持续时间取决于客户端被配置为重试多久,默认可能非常久。处于这种状态的备份任务既没有失败也没有完成,任何监视非零退出码的程序都看不到任何结果。
你可以这样发现它:
mount | grep smbfs
timeout 5 ls /Volumes/Backup >/dev/null || echo "share is not answering"
实用的防御措施是:给每个操作设置严格的超时,把“没有回应”视为“目标无法访问”,而不是一个要无限重试的错误,并且绝不让一个卡住的目标拖住其他目标。如果你自己写脚本,用 timeout 包住整个任务,并让失败显而易见。
在本地磁盘上,fsync() 返回成功意味着字节已写入盘片或闪存。而通过 SMB,它的含义由服务器决定,并且因固件而异:有些 NAS 软件在数据进入内存的那一刻就确认了刷新,如果随后几秒内断电,上层每一层都报告已完成的写入就会丢失。
你无法在 Mac 上解决这个问题。你能做的是不再把“复制完成”等同于“副本安全”,也就是事后把共享上的备份读回来检查,作为单独的一步。只有这样才能区分服务器真正持久保存的写入和它仅仅接收了的写入。
SMB 共享会把 Unix 所有权映射为 NAS 所认为的你的身份,而这种映射常常出乎意料。有两个值得了解的症状:
._filename 伴随文件中,或直接丢弃。rsync -aE 会请求保留它们,但能否保留由服务器决定。ls -l 检查,Finder 显示的是缓存的大小。有些 SMB 服务器会错误地报告宗卷容量,或者报告底层存储池的容量,而忽略你的共享及其配额。信任这个数字的备份工具,会毫无顾忌地把一个据称有数 TB 空闲的共享塞满。
稳妥的理解是:容量缺失或不合理,就意味着未知,绝不意味着无限。在第一次大型备份之前手动检查:
df -h /Volumes/Backup
smb:// 和 NAS 名称,以该用户身份登录。可以,前提是 NAS 提供开启了 Time Machine 支持的 SMB 共享。Synology、QNAP、TrueNAS 以及大多数现行 NAS 系统都有这项设置。
通常是共享在睡眠期间断开了连接,或者 NAS 上的 Time Machine 磁盘映像受损了。第一次备份期间请让 Mac 接通电源,如果问题持续,请参阅关于磁盘映像错误的指南。
通常是该共享没有开启 Time Machine 服务,或者 NAS 只通过 AFP 广播。先检查 NAS 一侧,然后在 Finder 中连接一次该共享,让 macOS 记住凭据,再看一次。
可以。给每台 Mac 分配各自的共享或各自的配额,这样一台机器就不会占满另一台需要的空间。
在千兆网络上做增量备份,绰绰有余。慢的是第一次完整备份,所以那一次请用网线。
几乎永远不要。一台可从互联网访问的 NAS 就是一台需要你负责打补丁的小服务器。如果你想要异地备份,用你已付费的云账户中的一个文件夹更安全,通常也更简单。如何正确利用这些空间。
不是。RAID 只应对一种故障,即磁盘损坏,其他的都应对不了。每一次删除、每一个失误、每一个勒索软件都会同时波及所有磁盘。
可以,只要完成第一次备份。第一次请用有线连接,因为它会复制所有内容。之后的备份只发送有变化的部分。
在 Finder 中通过“前往 > 连接服务器”连接一次,并勾选“在我的钥匙串中记住此密码”。要在每次登录时自动装载,请在“系统设置”的“通用”中把该共享添加到“登录项”。
相关阅读:将 Mac 备份到外置驱动器。