Python 实现文件打包、上传与校验的方法
作者:冰 河 发布时间:2021-08-10 22:55:59
标签:Python,打包,上传,校验
不多说,我们直接上源码:
# -*- 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
来源:https://blog.csdn.net/l1028386804/article/details/79042656


猜你喜欢
- 一、函数概述简单来说 函数 就是自己定义的一段 小程序 方便自己调取使用def 用来定义函数的关键字 也就是这个函数的名字函数运行到retu
- 1.having 子句的用法 having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组
- 输入框Input 应当符合逻辑地划分为小组,这样大脑就可以很好的处理大堆区域间的关系。 ——《HTML权威指南》Web 应用程序总是利用表单
- java往php传数据最近刚好做到了这一块,有php调用java的接口来返回数据,php在做数据的处理可以做到两个系统的数据库同步操作,一般
- 最近开发过程中遇到一些小问题(似乎问题总是那么多),但一直没什么时间去优化与解决。程序员不能被业务绑架,有时间还是花点在代码,开始这次的vu
- 1. 线程的概念线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程I
- Click 是用 Python 写的一个第三方模块,用于快速创建命令行。我们知道,Python 内置了一个 Argparse 的标准库用于创
- 1、快捷键win+r输入cmd回车调出cmd界面,在命令行输入python回车,显示python命令无法识别2、登陆python官网http
- 一、 官网下载安装包: 官网网址:https://www.python.org/ 我下载的是3.6.3版本,如下图:&n
- 最近使用python写一些东西,在参考资料的时候发现字典是没有顺序的,那么怎么样按照一定顺序访问字典呐,我找到了一个小方法:假设一个字典是:
- 电脑是64位的安装不了Windows (x86, 32-bit),Mysql installer MSI ,然后下载了Windo
- 官网地址:https://www.mysql.com/安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载更为方便下载地址:ht
- 一、实验目标1、使用 K-means 模型进行聚类,尝试使用不同的类别个数 K,并分析聚类结果。2、按照 8:2 的比例随机将数据划分为训练
- 外部临时表通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束
- 本文实例为大家分享了UDP实现文件传输的具体代码,供大家参考,具体内容如下tcp进行文件传输看这里–python实现TCP文件接发这里实现的
- 这篇文章主要介绍了python常用排序算法的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 选择一个合适的编辑器,比如notepad++、VS、eclipse、sublime text等,选中要集体缩进的代码块,按Tab:集体缩进(
- 本文实例讲述了Go语言使用HTTP包创建WEB服务器的方法。分享给大家供大家参考,具体如下:在Golang中写一个http web服务器大致
- 相信大家都试过将Python文件进行打包,来发给其他没有安装Python环境的用户使用,但通常情况下,打包生成的exe文件都很大,而产生这种
- 不知道怎么忽然想看这个,呵呵 小我的python的反shell的代码 #!/usr/bin/python # Python&nbs