假设我定义了一个简单的任务来列出远程服务器上的文件:
from fabric.api import run, env
env.use_ssh_config = True
def list_files():
run('ls')
Run Code Online (Sandbox Code Playgroud)
我执行它:
fab -H server list_files
Run Code Online (Sandbox Code Playgroud)
如何为我正在运行的命令指定工作目录,而不是:
run('cd /tmp && ls')
Run Code Online (Sandbox Code Playgroud)
哪个对我来说不是很惯用?
免责声明:我在生活中第一次看到Fabric,而且我对Python完全不熟悉.
Dan*_*per 42
from fabric.api import run, env
from fabric.context_managers import cd
env.use_ssh_config = True
def list_files():
with cd('/tmp'):
run('ls')
Run Code Online (Sandbox Code Playgroud)
Bri*_*een 16
fabric 2.4.0看起来像这样的答案:
from fabric import Connection
conn = Connection(host=HOST_NAME, user=USER_NAME, connect_kwargs={'password': PASSWORD})
with conn.cd('/tmp/'):
conn.run('ls -la')
Run Code Online (Sandbox Code Playgroud)
这不在fabric文档中,而是在invoke文档中。
| 归档时间: |
|
| 查看次数: |
13586 次 |
| 最近记录: |