- 主题:通过pexpect用scp命令发送大文件,总是提示timeout
【 在 tinytoon 的大作中提到: 】
: 小文件有问题吗
只要是scp命令就不行,
但是iperf命令就OK
--
FROM 223.72.81.*
【 在 wincss 的大作中提到: 】
: 你用 pexpect 输入密码吧,输入密码的时候匹配了 root@ip: 这个吧?
: 然后你 scp 命令,是不是也是这个结尾。。。
: 然后 pexpect 觉得他应该出来帮你输入个密码,然后等着下一步,结果没等到超时了
: ...................
这个问题的关键还是在用scp传输大的文件,同样的方式,iperf命令就能正常发送出去,用的一套pexpect代码
--
FROM 36.112.24.*
【 在 wincss 的大作中提到: 】
: 你也不贴代码,你自己也没有调试能力。。。
: 这么多天过去了你除了研究出来scp和iperf不一样这一个现象之外有啥进展?
:
好的,等我整理代码,我现在也在梳理我的代码
--
FROM 223.72.37.*
【 在 wincss 的大作中提到: 】
: 你也不贴代码,你自己也没有调试能力。。。
: 这么多天过去了你除了研究出来scp和iperf不一样这一个现象之外有啥进展?
:
self.child = pexpect.spawn(ssh_start_cmd, env=os.environ,use_poll=True)
ssh_start_cmd: /usr/bin/ssh -p 22 root@10.20.14.117
index = self.child.expect(ptnlist,timeout=timeout)
其中ptnlist:ptnlist = [pexpect.EOF, pexpect.TIMEOUT,[root@.*]]正常期待是ptnlist最后一项,但是触发了pexpect.TIMEOUT,具体代码如下:
elif index == 1:
tomsg = ('Try to expect %s failed '
'pexpect hit TIMEOUT.'
% ptn)
self.caselog.debug_print_level1(tomsg)
然后,我要发送的scp命令如下:bin/scp /dev/test.img root@ip:/dev/null
--
FROM 36.112.24.*
【 在 wincss 的大作中提到: 】
: 我从第一个回答就说了。。。。
: 你那个 root@.* 不止能匹配到输入密码,也能匹配到 scp 这句话
: 你没看见?这都快一个星期了,还没反应过来是咋回事?
: ...................
谢谢,老大, 你的说法是对的,
的确是因为scp命令要输入远程主机的密码,而我没有写输入密码相关的模块,
现在补上就对了
--
FROM 36.112.24.*
【 在 wincss 的大作中提到: 】
: 好吧。我还真不是这个意思。。。。
: 不过解决了就解决了吧。。。
:
相对于其他命令,scp涉及到远程登陆主机,的确需要输入密码,
所以需要写一个模块自动输入密码
--
FROM 36.112.24.*
【 在 dinglinglm 的大作中提到: 】
: scp 你不需要告诉人家,你要把文件放在远端的哪个目录?
: 比如 scp test.txt root@ip:/root/
: ——
: ...................
对,现在的关键就是怎样密码交互
--
FROM 36.112.24.*
【 在 dinglinglm 的大作中提到: 】
: 楼主就是直接冒号都没给
: 加个冒号,应该就能放到home了
: :
: ...................
有冒号的,scp srcfile root@remoteip:dstfile 格式是这样的
--
FROM 36.112.24.*