我需要将一些文件放到远程sftp服务器上,创建一个新目录以将其放入.有没有办法使用Fabric做到这一点? Fabric.operations.put()看起来无法处理在远程端创建新目录的问题.
解决方法:
在调用put()
之前运行mkdir:
run('mkdir -p /path/to/dir/')
put('/local/path/to/myfile', '/path/to/dir/')
-p
flag处理创建嵌套目录,请参阅:
-p, –parents
no error if existing, make parent directories as needed
更新(仅sftp访问).
使用SFTP.mkdir()
:
from contextlib import closing
from fabric.sftp import SFTP
ftp = SFTP(env.host_string)
with closing(ftp) as ftp:
ftp.mkdir('/path/to/dir/', use_sudo=False)
put('/local/path/to/myfile', '/path/to/dir/')