smbclient命令经常失败

时间:2014-05-26 08:17:16

标签: c linux smb

我需要从旧的Samba服务器下载文件,然后删除它们。 为了删除这些文件,对于每个下载的文件,我使用命令:

smbclient ... -c "cd <destination folder>; rm <filename>"

使用system()功能。

总的来说,这很有效,但Samba服务器经常无法执行命令,直到现在我看到了3种错误消息:

  • NT_STATUS_PIPE_BROKEN(最常见的一个)
  • NT_STATUS_CONNECTION_INVALID
  • NT_STATUS_CONNECTION_RESET

还有一些没有错误消息但是文件没有被删除的情况,甚至在它回复"NT_STATUS_OK removing remote directory file ..."时仍然被删除2次但是之后目录仍在那里,而它通常不会发送此消息

有没有办法检测它何时失败并重做命令?或者更可靠的方法来删除这些文件?

编辑:smbclient ... -c "cd <destination folder>; recurse; prompt; rm <filename>"

这样,我就停止了NT_STATUS _... errors`,但文件没有被删除。

编辑2:我尝试用exec函数执行命令并用WEXITSTATUS检查退出值,每次都得1;

0 个答案:

没有答案