我正在运行smbclient版本4.9.4,尝试将97 MiB文件从Arch Linux传输到Windows,并以--socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072'
推荐的bsd用户身份调用smbclient, 但仍然失败cli_push returned NT_STATUS_IO_TIMEOUT
。
从7.40版开始,curl支持smb协议。
因此,我使用它moderately_sized_file
从Linux 将上载到OurRemoteDirectory
Windows机器上的服务172.16.17.52
:
curl --upload-file /home/me/moderately_sized_file --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/
对我来说,curl每次都可靠地上传了文件,并且还显示了上传进度,这很好。
请注意,curl 尚不支持在远程主机上创建目录。
因此,您可能需要/Path/To/Dir/
使用以下命令进行创建(但smbclient mkdir
到目前为止没有任何问题):
smbclient //172.16.17.52/OurRemoteDirectory/ -U MyUserName%MyPassword -W OurWindowsDomain -c 'mkdir Path/To/Dir/'