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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 Python
Python中zipfile压缩包模块的使用
May 14 Python
pandas中DataFrame检测重复值的实现
May 26 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 管理系统程序中的后门
2009/08/05 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
Python学习资料
2007/02/08 Python
Python算法应用实战之队列详解
2017/02/04 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
创业融资计划书
2014/04/25 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
社区务虚会发言材料
2014/10/20 职场文书
教代会开幕词
2015/01/28 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
导游词之日月潭
2019/11/05 职场文书