Python 实现文件打包、上传与校验的方法


Posted in Python onFebruary 13, 2019

不多说,我们直接上源码:

# -*- coding:UTF-8 -*-
'''
实现文件打包、上传与校验
Created on 2018年1月12日
@author: liuyazhuang
'''
 
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
 
env.user = 'root'
env.hosts = ['10.2.2.2']
env.password = 'cardio-2017'
 
@task
@runs_once
def tar_task():  #本地打包任务函数,只限执行一次
  with lcd("/data/logs"):
    local("tar -czf access.tar.gz access.log")
    
 
@task
def put_task():   #上传文件任务函数
  run("mkdir -p /nginx/logs")
  with cd("/nginx/logs"):
    #put(上传操作)出现异常时,继续执行,非终止
    with settings(warn_only = True):
      result = put("/data/logs/access.tar.gz", "/nginx/logs/access.tar.gz")
    if result.failed and not confirm("put file failed, Contiunue[Y/N]?"):
      #出现异常时,确认用户是否继续,(Y继续)
      abort("Aborting file put task!")
 
@task
def check_task():  #校验文件任务函数
  with settings(warn_only = True):
    #本地local命令需要配置capture=True才能捕获返回值
    lmd5 = local("md5sum /data/logs/access.tar.gz", capture=True).split(' ')[0]
    rmd5 = run("md5sum /nginx/logs/access.tar.gz").split(' ')[0]
    #对比本地与远程文件的md5信息
    if lmd5 == rmd5:
      print "OK";
    else:
      print "ERROR"
 
@task
def execute():   #统一执行tar_task()、put_task()、check_task()
  tar_task()
  put_task()
  check_task()

本实例分别定义了3个功能函数,实现了文件的打包、上传和校验的功能,且3个功能相互独立,可分开运行

fab -f file_handler.py tar_task  #文件打包操作
fab -f file_handler.py put_task  #文件上传操作
fab -f file_handler.py check_task #文件校验操作

也可以通过以下命令组合在一起运行

fab -f file_handler.py execute

以上这篇Python 实现文件打包、上传与校验的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python基础篇之初识Python必看攻略
Jun 23 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
python画一个玫瑰和一个爱心
Aug 18 Python
Python元组常见操作示例
Feb 19 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
python绘制无向图度分布曲线示例
Nov 22 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
用python计算文件的MD5值
Dec 23 Python
使用python3构建文件传输的方法
Feb 13 #Python
对python 自定义协议的方法详解
Feb 13 #Python
Python 实现两个服务器之间文件的上传方法
Feb 13 #Python
Python魔法方法详解
Feb 13 #Python
Python函数中不定长参数的写法
Feb 13 #Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 #Python
python调用c++传递数组的实例
Feb 13 #Python
You might like
php中的一些数组排序方法分享
2012/07/20 PHP
php实现购物车功能(上)
2020/07/23 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
php远程下载类分享
2016/04/13 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
Angular异步变同步处理方法
2018/08/13 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
python处理xml文件的方法小结
2017/05/02 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
python2和python3的输入和输出区别介绍
2018/11/20 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Django model select的多种用法详解
2019/07/16 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
白酒市场营销方案
2014/02/25 职场文书
求职自荐信怎么写
2014/03/06 职场文书
区级文明单位申报材料
2014/05/15 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
经济纠纷起诉状
2015/05/20 职场文书
班委竞选稿范文
2015/11/21 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
浅谈MySQL中的六种日志
2022/03/23 MySQL
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL