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通过socket查询whois的方法
Jul 18 Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 Python
Python常用知识点汇总
May 08 Python
通过python+selenium3实现浏览器刷简书文章阅读量
Dec 26 Python
python使用tornado实现登录和登出
Jul 28 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Python高级特性 切片 迭代解析
Aug 23 Python
pytorch 修改预训练model实例
Jan 18 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
教你使用TensorFlow2识别验证码
Jun 11 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执行速度全攻略(下)
2006/10/09 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
jQuery动态添加
2016/04/07 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
js用类封装pop弹窗组件
2017/10/08 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
python读写json文件的简单实现
2017/04/11 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Python JSON编解码方式原理详解
2020/01/20 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
讲文明知礼仪演讲稿
2014/09/13 职场文书
模范教师材料大全
2014/12/16 职场文书
企业安全生产规章制度
2015/08/06 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
一起来学习Python的元组和列表
2022/03/13 Python