【问题标题】:is there a way to use fabric run() and sudo() at a time?有没有办法一次使用织物 run() 和 sudo()?
【发布时间】:2013-11-05 09:52:06
【问题描述】:

我正在尝试在 python 2.7 中自动化测试(在 linux ubuntu 12.04 上的 eclipse 中)。 测试检查另一台电脑上的配置,所以我使用结构进行 ssh 连接。

我需要执行一个脚本:

run("cd somepath && ./execute_script.sh")

问题是我的脚本需要一个 sudo 才能运行,但是将命令更改为:

sudo("cd somepath && ./execute_script.sh")

不起作用,因为“cd”不能与 sudo 结合使用。 我也不能将命令分成两部分,因为那样会创建 2 个 shell,而第二个会忘记我在第一个中要走的路径。

如果我这样做:

run("cd somepath && sudo ./execute_script.sh")

测试不会完全自动进行,因为您必须一次输入密码。

有没有办法将 run() 和 sudo() 结合起来?

【问题讨论】:

  • sudo("sh -c 'cd somepath && ./execute_script.sh'")怎么样
  • 非常感谢,看到您的评论后,我刚刚搜索了“sh”,这对我的许多测试都有很大帮助

标签: python linux ssh sudo fabric


【解决方案1】:

怎么样:

from fabric.api import cd,sudo
with cd('somepath'):
    sudo('./execute_script.sh')

【讨论】:

  • 感谢您的回答,它对我有用,我什至不知道这样的事情是可能的,我想我可能需要在编码之前做一些额外的研究
猜你喜欢
  • 1970-01-01
  • 2015-04-22
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 2023-02-19
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
相关资源
最近更新 更多