我有一台服务器的smb地址为smb://files.cluster.ins.localnet/
是否可以通过命令行以类似于scp
或rsync
的方式通过命令行发送文件(快速)?
例如,
scp_to_samba folder_to_copy smb://files.cluster.ins.localnet/copied_content_folder/
答案 0 :(得分:2)
我还没有找到让rsync
或scp
与Samba服务器配合使用的方法。尝试按照this answer中的说明使用smbclient -c
:
smbclient //files.cluster.ins.localnet -c 'prompt OFF; recurse ON; lcd folder_to_copy; mkdir copied_content_folder; cd copied_content_folder; mput *'
如果您打算经常与同一台服务器通信,并且想要类似命令的内容,则可以尝试使用类似bash'script'的方法:
#!/bin/bash
# scp_to_samba.sh
smbclient //files.cluster.ins.localnet -W domain -U username \
-c "prompt OFF; recurse ON; lcd $1; mkdir $2; cd $2; mput *"
其中domain
和username
是登录服务器所需的任何凭据。用法如下:
./scp_to_samba.sh folder_to_copy copied_content_folder
要从服务器复制回来,您需要在该命令/脚本中进行一些切换,并使用mget
而不是mput
。
这是“快速”吗?我不知道。但这很简单,到目前为止对我来说效果很好。
有关更多详细信息,请参见smbclient man page。