[英]Not able to find file using ssh on another server using python pexpect on linux
我使用pexpect創建了簡單的python腳本,使用創建了一個spwan進程
CurrentCommand = "ssh " + serverRootUserName + "@" + serverHostName
child = pexpect.spawn(CurrentCommand)
現在,我使用代碼運行一些命令,例如ls-a或“ find / opt / license / -name'* .xml'”
child.run(mycommand)
如果從Pycharm運行,它可以正常工作,但是如果從終端運行,則無法正常工作,它找不到任何文件,我認為它正在研究我的本地系統。
誰能給我建議。 謝謝
作為建議,請看一下paramiko庫(或使用它的Fabric,但有特定用途),因為這是ssh的python接口。 它可以使您的代碼更好一些,並且可以更有效地抵抗錯誤或攻擊。
但是,我認為問題來自您對run
的使用。
該函數運行給定的命令; 等待它完成; 然后以字符串形式返回所有輸出。 STDERR包含在輸出中。 如果未提供命令的完整路徑,則會搜索路徑。
您應該看的是“期望”。 即您的spawn與spawn
使用,那么您應該使用expect
等待它到達適當的點(例如,已連接,在motd按下后終端准備就緒等)(因為ouy可能必須在其中輸入用戶名和密碼)。
然后,您要運行sendline
將行發送到程序。 參見示例:
http://pexpect.readthedocs.io/en/latest/overview.html
希望對您有所幫助,並認真看一下paramiko;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.