加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – smbclient的退出代码

发布时间:2020-12-13 22:55:07 所属栏目:Linux 来源:网络整理
导读:我手臂上的samba的命令行命令“smbclient”有问题. 我写了一个脚本来从Windows Share下载文件. 这是这个脚本的smb部分. smbclient //CNAME/SNAME -I0.0.0.0 -N -c "case_sensitive; cd folder; prompt; mget file"echo $? 我的问题是退出代码. 如果文件已完
我手臂上的samba的命令行命令“smbclient”有问题.

我写了一个脚本来从Windows Share下载文件.
这是这个脚本的smb部分.

smbclient  //CNAME/SNAME -I0.0.0.0 -N -c "case_sensitive; cd folder; prompt; mget file"
echo $?

我的问题是退出代码.
如果文件已完全下载,则退出代码为0(确定)
如果无法下载文件,退出代码为1(OK)
如果由于下载文件而导致testmaschine失去与共享的连接,则退出代码为0(NOT GOOD),但错误(“Lost connection … etc.”)将写入控制台. (好)

我尝试了两个不同的版本.
桑巴3.0.32
桑巴3.6.19
两者都一样.

有人知道一个好的解决方法(或smbclient-argument)让我的脚本知道,下载失败了吗?

PS.我检查了smbclient来源.看起来他们忘了设置exitcode.因为每次有另一个错误,设置Errormessage并执行(例如exit(1)).但是对于超时,他们只设置Errormessage.

先感谢您!

解决方法

最好的方法是使用-E参数进行smbclient并从命令行重定向2> / errorlog.然后,您可以检查此文件以查看是否发生了任何错误.

警告,第一行始终是Domain = ………所以你可能需要删除该行.

像这样的东西:

smbclient Hostname -A authfile -E 1>log 2>errorlog <<-EOF 
get foo 
EOF

在错误日志中,您应该找到类似下面的内容,您的日志文件将为空

Domain=[Hostname] OS=[Windows Server 2008 R2 Standard 7601 Service Pack 1] Server=[Windows Server 2008 R2 Standard 6.1] NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file foo

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读