Fabric 应用案例


Posted in Python onAugust 28, 2016

示例1:文件打包,上传与校验
我们时常做一些文件包分发的工作,实施步骤一般是先压缩打包,在批量上传至目标服务器,最后做一致性校验,本案例通过put()方法实现文件的上传,通过对比本地与远程主机文件的md5,最终实现文件一致性校验。

#!/usr/bin/env python
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
env.user = 'root'
env.hosts = ['192.168.1.23','192.168.1.24']
env.password = '123456'
 
@runs_once
def tar_task(): #本地打包任务函数,只限执行一次
  with lcd('/'):
    local("tar zcvf auto.tar.gz auto")
 
def put_task():
  run('mkdir /data') #上传任务函数
  with cd("/data"):
    with settings(warn_only=True):
      result = put("/auto.tar.gz","/data") #put上传出现异常时继续执行,非中止
    if result.failed and not confirm("put file failed, Continue[Y/N]?"):
      abort('Aboring file put task!') #出现异常时,确认用户是否继续
 
def check_task():
  with settings(warn_only=True):
    lmd5 = local("md5sum /auto.tar.gz",capture=True).split(' ')[0]
    rmd5 = run("md5sum /data/auto.tar.gz").split(' ')[0]
    if lmd5 == rmd5: #对比本地及远程文件MD5信息
      print "ok"
    else:
      print ERROR
def go():
  tar_task()
  put_task()
  check_task()
Python 相关文章推荐
理解python正则表达式
Jan 15 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
详解Python正则表达式re模块
Mar 19 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
在python中求分布函数相关的包实例
Apr 15 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 #Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 #Python
python解决方案:WindowsError: [Error 2]
Aug 28 #Python
详解Python中的文件操作
Aug 28 #Python
Python环境变量设置方法
Aug 28 #Python
Python代码解决RenderView窗口not found问题
Aug 28 #Python
python 文件操作api(文件操作函数)
Aug 28 #Python
You might like
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
最基础的Python的socket编程入门教程
2015/04/23 Python
Python中特殊函数集锦
2015/07/27 Python
python决策树之C4.5算法详解
2017/12/20 Python
python3实现逐字输出的方法
2019/01/23 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Mac安装python3的方法步骤
2019/08/09 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
python实现滑雪者小游戏
2020/02/22 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
工程管理专业个人求职信范文
2013/12/07 职场文书
小学生暑假感言
2014/02/06 职场文书
美术教师自我鉴定
2014/02/12 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
节约粮食标语
2014/06/18 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
毕业设计工作总结
2015/08/14 职场文书
车间班组长竞聘书
2015/09/15 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang