我有两台服务器,我们称它们为 sA 和 sB。我需要将数据(几 TB)从 sA 备份到 sB,但由于 sB SSH 存在问题,我使用本地 PC 作为“中间人”。sA 是 Linux 服务器,sB 是 QNAP nas。
因此,我首先使用
sudo mount -t cifs //sb_host/share destdir -o username=myuser,file_mode=0777,dir_mode=0777
然后我使用 rsync 将文件从 sA 复制到共享:
rsync -PrlH -e '/usr/bin/ssh' myremoteuser@sa_host:/dir-to-backup/ destdir
我不得不删除该-a
选项,因为无法保留时间和权限。这不是什么大问题(虽然修复这个问题会很好),但符号链接也会发生同样的情况:
rsync: symlink "symlink_file" -> "symlink_destination_file" failed: Operation not supported (95)
这可以修复吗?
答案1
我曾尝试过“unix extensions = yes”,但是没有用 - 只是 nas 在重新启动时覆盖了设置。
因此,将该选项添加到接收服务器,在那里重新启动 samba 并使用 cifs 安装共享即可正确处理权限和符号链接。
答案2
CIFS 不支持符号链接
答案3
您可以使用 rsync -rt 来保留时间戳和递归目录 - 这是使用 -a 的两个主要原因,并且您不会收到权限错误。
对您的情况来说,使用 NFS 而不是 CIFS 可能更合适,因为 NFS 会将权限传递给 rsync。
请注意,您可以使用 scp -3 来复制通过中间人机器,无需在其上安装任何东西。;-)