尝试使用fabric / patchwork将文件从本地机器(Windows 10™)复制到远程机器(Ubuntu 16.04):
from fabric import Connection
from patchwork.transfers import rsync
with Connection(REMOTE_IP, user='root', connect_kwargs={'key_filename': KEY_FILE}) as c:
rsync(c, SRC_DIR, '/root/build/', strict_host_keys=False)
我收到一个错误:
“rsync”不是内部或外部命令、可运行程序或批处理文件。
尽管它的路径已在 PATH 中注册。我怀疑 rsync 以清除环境变量开始,因此找不到可执行文件。
如何使 rsync 工作?
出于安全考虑,默认情况下,fabric 中的任务运行器使用配置选项
replace_env=True
和一个空字典env
,这会导致它在没有环境rsync
变量的情况下运行。PATH
在上下文中更改此属性就足够了:使一切正常。