除了当前为正在运行的 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/