2017-10-04 152 views
0

我的要求如何面料做工很簡單:「須藤蘇USER1」 與「須藤蘇用戶」

  • 列表中的所有項目:

    1. SSH到遠程服務器與用戶0
    2. 切換用戶使用爲user1在當前文件夾

    我的期望碼:

    def startRedis(): 
        run('sudo su - user1') 
        print(run('ls')) 
    

    然而,它結束於:[email protected]:~$ 並永遠等待我的交互式命令,永遠不會執行第二行。看來sudo su開了一個新的shell。

    任何人都可以幫助解決這個簡單的任務嗎?

  • 回答

    0

    您可以在env中設置sudo_user屬性。這種結構將把用戶切換到所需的用戶。

    官方DOC:http://docs.fabfile.org/

    密碼切換用戶可以在ENV指定。本身以避免在調用方法時得到提示。

    fabfile.py

    from fabric.api import env, sudo 
    
    env.sudo_user='user1' 
    env.password = '***' 
    
    def list_items(): 
        sudo('ls') 
    

    以下命令&運行之後指定主機-H

    fab -H host1 list_items