【问题标题】:Python Fabric : tricky ssh issuePython Fabric:棘手的 ssh 问题
【发布时间】:2012-03-14 11:14:51
【问题描述】:

我有一个系统,用于运行在其他几个客户端系统上执行测试用例的结构脚本。(通过 launch_process.sh)

@task
@hosts('controller')
def run_script():
           run('/test/launch_process.sh')
           #below line didn't work 
           check_ps()


@task
@hosts('clients')
def check_ps():
           run('ps aux | grep myprocess')

当我们这样做时 fab run_script

它在其他机器上启动进程(假设 machine2,machine3) 现在我想使用“ps”命令来确认进程是否运行。 但是 check_ps() 在“控制器”本身上运行,而不是在客户端上运行。

关于如何实现这一点的任何想法?

(寻找解决方案,不使用passwdless登录和popen或paramiko)

【问题讨论】:

标签: python ssh fabric


【解决方案1】:

Fabric 现在有 execute()。 http://docs.fabfile.org/en/1.4.0/api/core/tasks.html#fabric.tasks.execute

这样就可以了:

@task
@hosts('controller')
def run_script():
    run('/test/launch_process.sh')
    execute(check_ps, hosts=['client'])

如果你想单独运行它,check_ps 上的@hosts 仍然有效(w/o run_script())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2013-02-08
    相关资源
    最近更新 更多