我正在尝试将目录从 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 共享一个文件夹或驱动器才能正常工作。