fabric文件传输

put() 函数从本地上传文件到远端主机。如:

put('bin/project.zip', '/tmp/project.zip') #本地目录文件上传到远端

将本机bin/project.zip的文件传到服务器的/tmp/project.zip上。


一个例子:

from __future__ import with_statement
from fabric.api import settings, abort
from fabric.contrib.console import confirm
from fabric.operations import put

def put_task():  
  run("mkdir -p /data/logs")  
  with cd("/data/logs"):  
    with settings(warn_only=True):  
        result = put("/data/logs/access.tar.gz", "/data/logs/access.tar.gz")  
    if result.failed and not confirm("put file failed, Continue[Y/N]?"):  
        abort("Aborting file put task!") 
  • 1 环境字典中的warn_only 默认为False,指定在 run、sudo、local遇到错误时究竟是警告还是退出。

  • 2 put这样运行命令的操作会返回一个包含执行结果( .failed或 .return_code属性)的对象。