我正在使用python脚本ssh并连接两台用于运行iperf命令的pc,但脚本需要花费大量时间来执行。如何减少执行时间:脚本正在从eclipse IDE运行。
这是我正在使用的脚本:
import pexpect
import pxssh
import time
import os,re,sys
def tc01s(ipaddr,password):
try:
ss = pexpect.spawn(ipaddr)
print ipaddr
ss.logfile = open("/tmp/mynewlog", "w")
#ss.logfile = sys.stdout
print "SSH connecting"
print
except:
print "connection refused"
print
#sys.exit()
try:
print password
ss.expect (':')
ss.sendline (password +"\n")
print "connected"
time.sleep(30)
ss.expect (">")
print "connection established"
print
except:
print "Permission denied, please try again."
print
sys.exit()
try:
ss.sendline ('taskkill /F /IM iperf.exe\n')
#time.sleep(30)
ss.expect ('>')
#os.system("D:\iperf-2.0.5-2-win32\iperf.exe -s\n")
ss.sendline ('cd /D D:\iperf-2.0.5-2-win32')
ss.expect ('>')
ss.sendline ('iperf -s -u -f m -p 5000 -l 1470 -i 1')
ss.expect (r'TCP window size: .*yte \(default\)')
time.sleep(30)
except:
print
print
#sys.exit()
###############################################################################
time.sleep(30)
def tc01c(ipaddr,password):
try:
css = pexpect.spawn(ipaddr)
css.logfile = open("/tmp/mynewlog", "w")
#css.logfile = (sys.stdout)
print "SSH connecting"
print
except:
print "connection refused"
print
sys.exit()
try:
css.expect (':')
css.sendline (password + "\n")
print "connected"
time.sleep(30)
css.expect (">")
print "connection established"
print
except:
print "Permission denied, please try again."
print
sys.exit()
try:
#css.sendline ('taskkill /F /IM iperf.exe\n')
print css.logfile
css.expect ('>')
css.sendline ('D:' + "\r")
#css.sendline ('cd /D D:\iperf-2.0.5-2-win32')
css.expect ('>')
css.sendline ('dir' + "\r")
css.sendline ('cd iperf ' + "\r")
css.expect ('>')
css.sendline ('iperf -u -f m -c 192.168.100.101 -p 5000 -b 3.00M -t 10 -l 1470 -i 1 \r\n')
css.expect (r'TCP window size: .*yte \(default\)')
time.sleep(30)
except:
print
print
#sys.exit()
###############################################
the above code is executed using
import os
import pexpect
import ssh
import time
ssh.tc01s("ssh user@192.168.100.101","pass123")
ssh.tc01c("ssh domain@192.168.100.85","123pass")
答案 0 :(得分:1)
正如评论者所提到的,没有代码,这可能真的很难回答。但是如果你不想/不能在这里附上代码,我会猜测一下:
答案 1 :(得分:1)
如果建立连接需要很长时间,您可能需要在两台计算机的/ etc / ssh / sshd_config中禁用UseDNS选项。