首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用smbclient将文件从Virtualbox客户端传输到脚本中

用smbclient将文件从Virtualbox客户端传输到脚本中
EN

Unix & Linux用户
提问于 2018-11-21 16:55:32
回答 1查看 181关注 0票数 1

我正在尝试开发一个将在CentOS 7机器上运行的脚本,但目前我正在一个Virtualbox实例(也就是CentOS 7)中开发它。脚本将处理几个任务,但我遇到问题的部分是将数百个大文件发送到Windows机器(目前这是我的pc或Virtualbox主机)。

两个问题:

( A)将文件发送到主机。

当前的尝试如下:

代码语言:javascript
复制
find "${FILES_DIR}" -print0 | while read -d 在WINDOWS_IP为enp0s3.inet的地方,WINDOWS_DIR是主机上的一个共享文件夹。问题是,我不断地被拒绝连接错误,我不知道从这里去哪里。( B)确认文件已成功传输smbclient是否返回任何我可以用来检查文件是否已成功传输的内容?\0' file
do
  if [ ${file: -4} == ".zip" ]
  then
    smbclient //${WINDOWS_IP}/${WINDOWS_DIR} -U ${WINDOWS_USERNAME}%${WINDOWS_PASSWORD} -c "put ${file}"
  fi
done

在WINDOWS_IP为enp0s3.inet的地方,WINDOWS_DIR是主机上的一个共享文件夹。问题是,我不断地被拒绝连接错误,我不知道从这里去哪里。

( B)确认文件已成功传输

smbclient是否返回任何我可以用来检查文件是否已成功传输的内容?

EN

回答 1

Unix & Linux用户

发布于 2018-11-22 17:22:47

至于(B),至少对于一些错误,我的smbclient确实返回了一个退出代码。可以在shell中使用$?获取最后一个命令的退出代码。退出代码为“确定”,非零表示错误,因为我引发的退出代码为1(但其他退出代码是可能的,并不是所有的错误都可能设置退出代码)。

(A)中提到的“连接拒绝”错误可能有很多原因,如果ping到远程计算机工作,如果您检查了防火墙设置,那么Q&A至少要提供一些信息,说明在什么情况下发生了错误或没有发生错误。

和BTW,您还可以将命令输送到smbclient中,如

代码语言:javascript
复制
echo "put ${file}" | smbclient "//${WINDOWS_IP}/${WINDOWS_DIR}" -U "${WINDOWS_USERNAME}%${WINDOWS_PASSWORD}"

这可能有助于或可能无助于传输大量的文件,避免每次建立新的连接,如果这是随机失败。

请考虑正确地转义所有内容(我添加了引号)。我们不知道您使用的实际值,错误的转义可能会损坏主机、用户或密码,也可能是失败的原因。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/483252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档