0

iperf コマンドを実行するために、Python スクリプトを使用して 2 台の PC を ssh および接続していますが、スクリプトの実行に時間がかかります。実行時間を短縮するにはどうすればよいですか: スクリプトは 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")    
4

2 に答える 2

1

コメンターが述べたように、コードがなければ、これに答えるのは本当に難しいかもしれません. ただし、ここにコードを添付したくない/添付できない場合は、いくつか推測できます。

  • 実行可能な SSH クライアントを実行している場合は、ライブラリに切り替えてみてください。
  • 接続自体ではなく、実行している特定のコマンドが遅いのではないでしょうか? SSH 接続が遅い原因であることを確認するために、別の (より単純な) ものを実行してみてください。
  • 速度を低下させる可能性のあるその他の推測: ネットワークが遅い、受信側がビジー状態、ホストがビジー状態など。
于 2013-05-13T10:06:46.103 に答える