我正在使用paramiko連接到遠程linux機器的python腳本。連接建立後,我想在遠程機器上運行一個命令。該命令首先在遠程機器上創建少量文件,然後對這些文件執行一些操作(命令執行可能需要1秒到1分鐘到10分鐘)。下一步,我用運輸Python如何在遠程機器上執行命令並等待執行完成?
paramiko.SFTPClient.from_transport(transport).get(filename)
這個命令我的本地機器上的這些文件是工作的罰款和收集的文件。但問題是它不會等待文件上的所有操作完成。結果,我沒有得到正確的數據。任何人都可以在這裏幫我嗎?
我發現下面的命令,爲了這個目的,
stdin, stdout, stderr = ssh_conn_ssh.exec_command(create_and_operate_on_files)
(注:標準輸出,標準錯誤等,爲同名只是給我不打擾他們的輸出)
但該命令sh_conn_ssh.exec_command(create_and_operate_on_files)
不會等待命令create_and_operate_on_files
完成。結果,我正在獲取文件,而他們仍在進行操作。
嘗試'sys.open []'這是等待,直到完成過程 – GLHF 2015-01-21 05:31:36
你能告訴我究竟在哪裏使用這個命令? – Gauranga 2015-01-21 05:36:58
你的問題是'p = subprocess.Popen(create_files_and_operate_on_themstdin,stdout = subprocess.PIPE stdout,stderr = subprocess.STDOUT)''。現在它消失了。爲什麼?用這個代替這個 – GLHF 2015-01-21 06:04:52