![使用命令行通过 Samba 发送文件](https://linux22.com/image/66000/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%80%9A%E8%BF%87%20Samba%20%E5%8F%91%E9%80%81%E6%96%87%E4%BB%B6.png)
我想知道是否有一种方法可以使用 Samba 通过命令行将项目发送到客户端计算机(我需要从 Samba 服务器发送文件)。我知道我总是可以使用,scp
但首先我想知道是否有办法用 Samba 来做到这一点。谢谢!
答案1
使用smbclient
,Samba自带的一个程序:
$ smbclient //server/share -c 'cd c:/remote/path ; put local-file'
有许多标志,例如-U
允许远程用户名与本地用户名不同。
在将 Samba 拆分为多个二进制包的系统上,您可能已经安装了 Samba 服务器,但仍然丢失smbclient
。在这种情况下,请检查您的包存储库中是否有名为smbclient
、samba-client
或类似名称的包。
答案2
卷曲支持smb
v1协议自 v7.40 起:
curl --upload-file /path/to/file.ext -u 'DOMAIN\Username' smb://172.16.17.52/ShareName/
默认情况下,SMB v1 在 Windows 中不再可用,因此这不适用于默认配置中的当前 Windows 共享。
答案3
真正有效的将是这样的:
$ smbclient //server/share -c 'cd c:/remote/path ; put local-file remote-file'
local-file - 来自本地计算机的文件
远程文件 - 复制到远程计算机上的此文件
答案4
我做了很多研究,最后我成功地使用下面的命令通过 shell 文件一次性传输文件。
smbclient -m smb2 '//xx.xxx.xxx.xx/share1/' -U domxyz/xyz%password123 -c 'cd "FOLDER 1/FOLDER 2/" ; put FILE1.xlsx'