复制到 cifs 共享时,rsync 未保留符号链接

复制到 cifs 共享时,rsync 未保留符号链接

我有两台服务器,我们称它们为 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 来复制通过中间人机器,无需在其上安装任何东西。;-)

相关内容