2015-06-16 49 views
-2

我需要製作一個python腳本,它將按順序執行這些步驟,但我不確定如何設置它。使用python2.7在遠程服務器上自動執行作業

  • SSH到服務器

  • 複印從點A的文件夾到B點(CP /富/酒吧/文件夾1 /富/文件夾2)

  • 的MySQL -u根-pfoobar(這個數據庫是從本地主機只)

    訪問創建一個數據庫,做一些其他MySQL的東西在MySQL控制檯

  • 替代對象在文件foobar的富酒吧的情況下

  • 複製和編輯文件

  • 重新啓動服務

,我要ssh到一個服務器,然後做這一切的事實真讓我困惑。我查看了Fabric庫,但似乎一次只執行1個命令,並沒有保留先前命令的上下文。

回答

1

聽起來像你正在做某種遠程部署/配置。有一整套工具可以專業地設置,看看Chef和Puppet。

或者,如果您只是尋找一些簡單的腳本編寫遠程命令的方法,也許pexpect可以做你需要的。

Pexpect是一個用於產生子應用程序的純Python模塊;控制他們;並對其產出中的預期模式做出反應。

我沒有用它自己,而是在它的說明書看一眼表明,它可以用SSH會話做工精細:https://pexpect.readthedocs.org/en/latest/api/pxssh.html

1

我從來沒有用的織物。

我使用pyexpect來解決這些問題(在開始使用saltstack之前),以運行ssh連接以及所需的所有命令。可能使用一系列的sql腳本來處理數據庫(只是爲了使它更容易),這將有所幫助。

另一種方式,因爲您需要使用ssh訪問遠程服務器,它將使用paramiko來遠程連接和執行命令。當你想要看看標準輸出發生了什麼時(這一點你可以看到發生了什麼),這有點複雜。

但這一切都取決於你真正需要的東西。

相關問題