http://fabric-chs.readthedocs.io/zh_CN/chs/api/core/context_managers.html?highlight=with%20settings#fabric.context_managers.settings  官网的settings介绍

 
1:settings的两个功能
1):最有效的,它允许使用任何提供的关键字和参数临时的覆盖或更改变量,若有需要的话,将会在with块
关闭之后,恢复回原来的
2):可以使用它的参数做一些设定,比如hide,show之类的
 
实例1:
settings里的clean_revert=True的用法
#encoding=utf8
#!/usr/bin/python from fabric.context_managers import settings,hide
from fabric.api import run,env def s():
print("with块之前的:%s " % env.host_string)
with settings(paraller=True,host_string='myhost'):
print("host_string: %s" % env.host_string)
env.host_string = "otherhost"
print("host_string: %s" % env.host_string) print("退出with块之后:%s " % env.host_string) def a():
print("with块之前的:%s " % env.host_string)
with settings(paraller=True,host_string='myhost',clean_revert=True):
print("host_string: %s" % env.host_string)
env.host_string = "otherhost"
print("host_string: %s" % env.host_string) print("退出with块之后:%s " % env.host_string)
 
 
执行结果:
clean_revert不设置的话,为下
 

 
clean_revert设置为true的话,执行结果如下:

 
clean_revert=True的作用是,当退出with块的时候,设置的变量将不会还原回with之前的
实例二:
#encoding=utf8
#!/usr/bin/python from fabric.context_managers import settings,hide
from fabric.api import run,env def my_task():
with settings(hide('warnings','running','stdout','stderr'),warn_only=True):
run('ls /etc/redhat-release') if run('ls /etc/lsb-release'):
return "Ubuntu"
elif run('ls /etc/redhat-release'):
return 'redhat'
 
执行结果为下:不管是否正确,他都什么信息都不会输出,因为hide('warnings','running','stdout','stderr'),warn_only=True
hide隐藏指定的信息,warn_only=True将错误转换为警告,遇到错误不终止,而是变成警告

 
 
可以一个一个注释的去看结果,若将warn_only=True去掉,结果如下:

 
 
 

Fabric的settings用法的更多相关文章

  1. C# Setting.settings . 用法 2 使用配置文件(.settings、.config)存储应用程序配置

    引言 我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置.这样每次都要建立单独的配置类,并书写读写配置 ...

  2. C# Setting.settings . 用法

    1.定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: 2.读取配置值 t ...

  3. Python2.7 fabric理论学习

    在python中有一个可以实现批量管理服务器的工具:fabric,在本地和远程机器上提供了一些基本的操作,并且可以上传/下载文件.执行sudo等功能. 学习环境:ubuntu 12.10+python ...

  4. 如何高效地远程部署?自动化运维利器 Fabric 教程

    关于 Python 自动化的话题,在上一篇文章中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一.Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本 ...

  5. 自动化运维利器 Fabric

    Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口.在 Fabric 1.x 版本中,它混杂了本地及远程两类功能:但自 Fabric 2.x 版本起,它 ...

  6. Fabric 源码学习:如何实现批量管理远程服务器?

    前不久,我写了一篇<Fabric教程>,简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器.执行 Shell 命令.批量管理服务器.远程部署等场景中,十分 ...

  7. jQuery.ajax() 函数详解

    jQuery.ajax()函数用于通过后台HTTP请求加载远程数据. jQuery.ajax()函数是jQuery封装的AJAX技术实现,通过该函数,我们无需刷新当前页面即可获取远程服务器上的数据. ...

  8. jquery.ajax()详解

    jQuery.ajax() 函数详解 traditional 如果你希望使用传统方式来序列化参数,将该属性设为true. 传递数组时, traditional必须为true var arr = []; ...

  9. Crashlytics功能集成

    总共分三步: 1. 将Crashlytics.framework和Fabric.framework拷贝到工程中: 2.配置工程的info.plist文件,如下: APIKey和Build secret ...

随机推荐

  1. ado.net 批量添加 更新 删除

    自曾列就别往下看 别折腾了   使用 SqlBulkCopy ,dataTable 必须跟sql里面的表字段完全一样 下面在sqlserver中演示 mysql 请google MySqlBulkLo ...

  2. mongodb笔记(二)

    1.使用mongodb的shell连接Mongodb服务: 标准URL连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2], ...

  3. 3、VNC

    VNC(Virtual Network Computing,虚拟网络计算机) VNC分为两部分组成:VNC server 和 VNC viewer VNC安装 1.yum install tigerv ...

  4. Oracle的sql导入

    sqlldr: 一般用于导入以任何后缀结束的文件,我这次就是因为要导入一张以.20160101为后缀的文件,当初简直束手无策 结合input.ctl使用,可以在DOS下使用,可以对一张表导入数十万,百 ...

  5. 团队作业8——敏捷冲刺(Beta阶段)

    Beta阶段--第1篇 Scrum 冲刺博客(计划) https://www.cnblogs.com/just-let-it-go/p/9061664.html Beta阶段--第2篇 Scrum 冲 ...

  6. [hdu P4114] Disney's FastPass

    [hdu P4114] Disney's FastPass Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  7. Vue 结合 Axios 接口超时统一处理

    引语:当网路慢的时候.又或者公司服务器不在内地的时候,接口数据请求不回来超时报错的情况相信大家肯定遇到过的,这里我把我公司项目请求超时的处理方法分享下,希望看过后有帮助. axios基本用法就不多说了 ...

  8. linux svn 多项目设置

    cd /svn/repos svnadmin create project_a svnadmin create project_b cd project_a cp -a conf /svn/ cd / ...

  9. sql存储过程编程带事务

    CREATE PROCEDURE [dbo].[存储过程名字] @错误参数_ErrorCode int output, @参数1 int, @参数2 varchar(20), @参数3 varchar ...

  10. kolla-ansible源码分析

    一.kolla-ansible 源码的目录结构 kolla-ansible是从kolla项目分离出来的一个可交付的项目,kolla-ansible负责部署容器化的openstack各个服务和基础设施组 ...