如何将目录从smb服务器复制到linux?

如何将目录从smb服务器复制到linux?

我正在尝试将目录从 smb 链接复制smb://source/path到 Linux 计算机

我努力了

rsync -av //source/path /destination/path

rsync -av smb://source/path /destination/path

但我收到“没有这样的文件或目录”错误

关于如何执行此任务有什么建议吗?

答案1

不幸的是,rsync无法直接访问 Windows SMB 文件共享。您将需要可以使用SMB protocol.

smbclient,我相信你会想做这样的事情:

smbclient //source/path -c 'lcd /destination/path ; recurse; mget *'

mount.cifs或者如果你有的话也可以使用:

mkdir /source_path
mount.cifs //source/path /source_path -o user=windowsuser
rsync -av /source_path /destination/path 

当然,挂载成功后,你就可以/source_path像本地路径一样访问了,所以你cp -a也可以用来执行复制。

或者,您可以安装Delta复制服务器在Windows系统上:它会rsync在Windows端提供一个兼容的服务器,然后你就可以rsync像这样使用:

rsync -av windowsuser@source::path /destination/path

请注意,在这种情况下,path源基于 DeltaCopy 服务器上配置的“虚拟目录定义”,与 Windows SMB 共享无关。

答案2

您可以尝试使用an smbclient,随 Samba 一起提供:

smbclient //source/path -c 'cd c:/destination/path ; put local-file'

在这种情况下,客户端计算机充当服务器。它需要通过 SMB 共享一个文件夹或驱动器才能正常工作。

相关内容