簡體   English   中英

Fabric - 如何在遠程計算機上使用交互式外殼?

[英]Fabric - how to use an interactive shell on remote computer?

我正在嘗試使用 Fabric 在遠程機器上運行命令。

這工作正常,直到遠程機器上的命令是交互式的。 在這種情況下,Fabric 返回交互式 shell,但強制我輸入所需的信息,而我正在嘗試發送一個遠程執行所有操作的命令,因此我可以自動化該過程。

例子:

from fabric.api import *
env.hosts=['myhost.mydomain']
env.user='root'
run(test1/myapp; exectask; exit)

我在遠程機器上運行一個 cli 應用程序,它使用交互式 shell,所以它正在等待我輸入命令(exectask); 然后一旦完成,退出,我調用 exit 命令。

現在發生的是應用程序啟動,Fabric 向我顯示交互式 UI,我仍然需要鍵入 exectask,然后退出。

如何告訴fabric 運行該應用程序,然后將命令傳遞給交互式shell,然后退出退出?

我看到 Fabric 具有提示功能,但那是要求用戶輸入數據,而我只想傳遞命令並返回結果。

您可能想查看pexpect ,這是一個類似於expect的純 Python 模塊。 從本質上講,它允許您的程序生成外部程序或進程,然后像人類與之交互一樣控制它。 您編寫程序應該看到的內容(因此得名),然后采取什么行動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM