首页 > 编程 > Python > 正文

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

2019-11-25 13:18:14
字体:
来源:转载
供稿:网友

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

# -*- 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_oncedef tar_task():  #本地打包任务函数,只限执行一次  with lcd("/data/logs"):    local("tar -czf access.tar.gz access.log")     @taskdef 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!") @taskdef 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" @taskdef 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 实现文件打包、上传与校验的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表