我需要将一些文件放到远程sftp服务器上,创建一个新目录来放入它们。有没有办法使用fabric做到这一点? Fabric.operations.put()看起来不像在远程端创建新目录。
答案 0 :(得分:4)
在致电put()
之前运行mkdir
:
run('mkdir -p /path/to/dir/')
put('/local/path/to/myfile', '/path/to/dir/')
-p
flag处理创建嵌套目录,请参阅:
-p, - 父母
如果存在则没有错误,根据需要创建父目录
更新(仅限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/')