python - 如何在 Fabric 命令中定位不同的主机

标签 python fabric

除了当前为正在运行的 Fabric 命令设置的目标之外,您如何指定一个不同的目标来运行命令?

我有一个命令 download_backup() 可以将数据库备份文件从远程主机下载到本地主机。由于它必须在本地运行,因此 host_string 是 localhost。但是,我需要在远程主机上运行一个命令来查找最新的备份是什么。当我尝试这样做时:

def download_backup():
    env.host_string = 'remotehost'
    env.user = 'remoteuser'
    backup_fn = run('ls -t /usr/local/lib/backups | head -1')

它仍然尝试在本地主机上运行 ls 命令。我要将其更改为在远程主机上运行吗?

最佳答案

您可以使用设置上下文管理器来更改运行特定命令的主机,独立于封闭任务的主机设置。

from fabric.context_managers import settings
with settings(host_string='remote_server'):
    run('ls -lart')

关于python - 如何在 Fabric 命令中定位不同的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12877168/

相关文章:

python - 如何清理pandas数据框中的索引值?

python - 使用重复索引 reshape Pandas Dataframe

query-performance - 如何使用 SQLAlchemy 和 PostgreSQL 对大表中的所有行进行有效排序?

python - fabric 和 svn 密码

python - Django 中的 Fabric。如何解决等待 SSH 完成的 View

Python Fabric Sudo su - 用户

python - 我们如何使用 Python 通过网络传输大量数据?

python - ":"的 pandas read_table usecols 错误

Python 使用 Fabric 模块向组运行 SSH 命令

python - 使用 IDE 调试 Fabfile