fabric的operations(操作)类

1.调用方法:
from fabric.api import require,pormpt,put,get,run,sudo,local,reboot,open_shell

from fabric.operations import require,pormpt,put,get,run,sudo,local,reboot,open_shell

2.方法的使用:
(1)require    #检查你在env.的环境变量中是否有值(即不为None),如果有,则继续执行,否则将退出

(2)prompt    #提示:类似一个raw_input,提供一个交互接口,用来保存一个字符串
    例:
    def prompt_test():
      path=prompt(‘输入一个路径:‘)
      run(‘ls %s‘ % path)
    输出:
    [[email protected] gyk_fab]# fab -f operations_test.py prompt_test
    [192.168.1.219] Executing task ‘prompt_test‘
    输入一个路径: /home      
    [192.168.1.219] run: ls /home    
    [192.168.1.200] Executing task ‘prompt_test‘
    输入一个路径: /home
    [192.168.1.200] run: ls /home
    [192.168.1.200] out: eventlisten.py
    [192.168.1.200] out:

Done.
    Disconnecting from 192.168.1.200... done.
    Disconnecting from 192.168.1.219... done.
    
(3)put    #上传本地文件到远程主机    
    例:
    def put_test():
      put(‘/tmp/dir/1‘,‘/tmp/dir_test‘)
    输出:
    [[email protected] gyk_fab]# fab -f operations_test.py put_test
    [192.168.1.219] Executing task ‘put_test‘
    [192.168.1.219] put: /tmp/dir/1 -> /tmp/dir_test/1
    [192.168.1.200] Executing task ‘put_test‘
    [192.168.1.200] put: /tmp/dir/1 -> /tmp/dir_test/1

Done.
    Disconnecting from 192.168.1.200... done.
    Disconnecting from 192.168.1.219... done.
    
(4)get #从远程主机下载文件到本地,但是这只能对应1台主机,不然传过来的文件名相同,会报错的(因此不能当做批量下载来使用)。
 
(5)run     #执行系统命令,当warn_only=True是,你可以用一个变量来接收它(变量=run()),然后用 变量.succeeded查看命令是否执行成功了。

(6)sudo和local 用sudo cmd的方式执行命令 && 只在本地执行命令(即不会在远程主机上执行)

(7)reboot 重启主机,但它有一个好处,就是当主机重启时,fabric会进入等待,当你重启以后,它会继续执行后面的内容

(8)open_shell自动连接到另一个终端上,重新打开一个shell。

时间: 2024-11-05 13:28:46

fabric的operations(操作)类的相关文章

使用RedisTemplate的操作类访问Redis(转载)

原文地址:http://www.cnblogs.com/luochengqiuse/p/4641256.html private ValueOperations<K, V> valueOps; private ListOperations<K, V> listOps; private SetOperations<K, V> setOps; private ZSetOperations<K, V> zSetOps; 1. RedisOperations接口说明

深入理解Spring Redis的使用 (三)、使用RedisTemplate的操作类访问Redis

上一篇说了RedisTemplate对注解事务的支持,以及提供的序列化器. 事务需要开启enableTransactionSupport,然后使用@transactional注解,里面直接通过回调的connection,就不需要自己进行multi和exec的事务开启提交了.但是通过回调去获取connection,完全没有达到一个模版类的功能.所以这篇我们会讲下几种Operations接口提供的方法. private ValueOperations<K, V> valueOps; private

使用RedisTemplate的操作类访问Redis(转)

深入理解Spring Redis的使用 (三).使用RedisTemplate的操作类访问Redis 事务需要开启enableTransactionSupport,然后使用@transactional注解,里面直接通过回调的connection,就不需要自己进行multi和exec的事务开启提交了.但是通过回调去获取connection,完全没有达到一个模版类的功能.所以这篇我们会讲下几种Operations接口提供的方法. private ValueOperations<K, V> valu

ASP.net如何保证EF操作类线程内唯一

说到线程内唯一,肯定会想到单例模式,但是如果多用户访问网站就会出现问题.ASP.net中有两种方法可以保证EF操作类线程内唯一(目前只会这两种,以后有好的方法再添加): 1.httpcontext(实现原理也是通过数据槽callcontext) 将EF操作类通过键值对方法保存在HttpContext.Current.Items["key"],封装成方法直接调用 2.callcontext public static DbContext CreateDbContext() { DbCon

反射之操作类,方法,属性等

1.操作类 获取类,并通过反射获取一个实例对象 Class class1 = Student.class; Student student = (Student)class1.newInstance();   //默认调用无参数的构造方法 student.setName("heh"); System.out.println(student.getName()); 2.操作构造方法   获取指定参数类型的构造方法,通过此对象创建一个特定参数值的实例对象 Class class1 = St

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

&lt;zz&gt;PYTHON FABRIC实现远程操作和部署

from http://www.cnblogs.com/liujianzuo888/articles/6230691.html fabric title是开发,但是同时要干开发测试还有运维的活 (o(╯□╰)o) 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多. 修复bug什么的,测试,提交版本库(2分钟),ssh到测试环境pull部署(2分钟),rsync到线上机器A,B,C,D,E(1分钟),分别ssh到ABCDE五台机器,逐一重启(8-10分钟)

php 的mysql操作类

亲自测试,网上其他版本没法用,有很多错误,这是本人亲自测试用的,绝对增删改查都可以. <?php /** * Created by Netbeans. * User: Lugo * Date: 16-7-14 * Version: 1.0.0 * Time: 上午10:50 */ class MysqlHelper { const HOST="localhost"; const DATABASE = "demo"; const ENCODING = "

数字(数学)操作类 Math Random 类 ,大数字操作类

Math 提供了大量的数学操作方法 Math类中所有的方法都是static 方法 重点看这个操作,四舍五入 System.out.println(Math.round(-16.5)) ; -16 System.out.println(Math.round(16.5)) ; 17 大于等于0.5进位. Random类 取得随机数的类 java.util 包 产生100之内的随机整数 Random rand = new Random() ; for(int x = 0 ; x < 10 ; x ++

完整的文件和目录操作类

using System; using System.Text; using System.IO; namespace HelloCsharp.Utilities { /// <summary> /// 文件操作类 /// </summary> public static class DirFile { #region 检测指定目录是否存在 /// <summary> /// 检测指定目录是否存在 /// </summary> /// <param n