python
  • ssh
  • command
  • 2017-08-01 185 views 0 likes 
    0
    #!/usr/bin/python 
    
    import subprocess 
    import sys 
    
    HOST=raw_input("\nInsert server(ex: xxXX.city):\n\n") 
    IP=raw_input("\nInsert ip:\n\n") 
    print '' 
    COMMAND='show arp hostname %s' % IP 
    COMMAND2='show route table inet.0 %s' % IP 
    ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND, COMMAND2], 
             shell=False, 
             stdout=subprocess.PIPE, 
             stderr=subprocess.PIPE) 
    result = ssh.stdout.readlines() 
    if result == 'xxx': 
        error = ssh.stderr.readlines() 
        print >>sys.stderr, "ERROR: %s" % error 
    else: 
        print ''.join(result) 
    

    我得到這個錯誤發送通過ssh兩個命令在一個subprocess.Popen列表

    錯誤:語法錯誤:顯示

    我猜是有問題兩個命令鏈接在一個子進程中.Popen。我這樣說是因爲它看起來像執行每一個沒有問題。只有當我把他們鏈接,我得到的錯誤。我查了一下,但是我還沒有發現關於用Popen一次性執行兩條命令的一些明確信息..有沒有辦法使它們像上面那樣工作,但有一點麻煩,還是我必須更改子進程?謝謝

    回答

    0

    從一個朋友的問題得到有效解決這樣的幫助:

    ssh = subprocess.Popen(["ssh", "%s" % HOST, ';'.join([COMMAND, COMMAND2])], 
    
    相關問題