python 打包前三天日志
日志格式
app-2019-07-24.log
app-2019-07-24.1.log
该脚本适合一天之内有多个日志文件
# /usr/bin/python
#-*- coding: utf-8 -*-
# Description 日志压缩 import os
import datetime
import re
import tarfile #获取前几天的日期
def getdate(before_day):
today = datetime.datetime.now()
# 计算偏移量
offset = datetime.timedelta(days=-before_day)
# 获取想要的日期的时间
re_date = (today + offset).strftime('%Y-%m-%d')
return re_date # 获取文件路径集合,不包含子目录
def getFile(logsPath):
logs_file = []
file_list = os.listdir(logsPath)
for file_name in file_list:
path = os.path.join(logsPath, file_name)
if os.path.isdir(path):
continue
logs_file.append(path) return logs_file # 检查文件,并压缩
def tar_file(logs_file,i):
new_date = datetime.datetime.now().strftime('%Y-%m-%d') # 当前时间
logs_old=[]
for f in logs_file:
# 过滤掉压缩文件
if f.endswith(".tar.gz"):
continue
# 使用正则获取日志文件名的时间
mat = re.search(r"(\d{4}-\d{1,2}-\d{1,2})", f)
if bool(mat):
delta = datetime.datetime.strptime(new_date, '%Y-%m-%d') - datetime.datetime.strptime(mat.group() ,'%Y-%m-%d')
if delta.days == i:
f=re.split("/", f)[-1]
logs_old.append(f) old_date = getdate(i)
if len(logs_old) == 0:
return
filename = re.split("-", logs_old[0])[0]
filename = re.split("/", filename)[-1]
tar_file_name = filename + "-" + old_date + ".tar.gz"
#print(tar_file_name)
if os.path.exists(tar_file_name):
print(tar_file_name,"is exists")
return
tar = tarfile.open(tar_file_name, "w:gz")
for i in logs_old:
tar.add(i)
os.remove(i)
tar.close if __name__ == "__main__":
logsPath = "/opt/"
os.chdir(logsPath)
logs_file = getFile(logsPath)
for i in range(1, 4):
tar_file(logs_file, i)
设置为定时任务
这是我的脚本路径(/opt/script/tar_logs.py)
* * * /usr/bin/python /opt/script/tar_logs.py
参考 https://www.jianshu.com/p/e79ec1ce39d8
python 打包前三天日志的更多相关文章
- 少儿编程崛起?2020年4月编程语言排名发布——Java,C,Python分列前三,Scratch挤进前20
前三并没有什么悬念,依然是Java,C,Python.C与Java的差距正在缩小,不过我们不用担心,在大数据分析领域Java,Python依然都是不可或缺的. 基于图形的基于块的编程语言Scratch ...
- python预科前三天:计算器知识、Python下载和安装、Pycharm下载安装激活设置、解释型和编译型、git、思维导图、显示隐藏文件、隐藏已知文件扩展名、创建组织、创建项目、提交作业、排BUG技巧
1.计算机组成结构:CPU.硬盘.内存.输入输出设备.主板.电源. 2.硬件之间的协作关系:是CPU运算完后给操作系统.专业术语叫指令. 3.键盘输入a之后发生的事情:键盘-CPU-操作系统-显卡-显 ...
- jenkinsapi和python打包工具的安装日志
Successfully installed PyInstaller-3.3.1 altgraph-0.15 dis3-0.1.2 future-0.16.0 macholib-1.9 pefile- ...
- Python 打包的现状:包的三种类型
英文 | The state of Python Packaging[1] 原作 | BERNAT GABOR 译者 | 豌豆花下猫 声明 :本文获得原作者授权翻译,转载请保留原文出处,请勿用于商业或 ...
- 用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件
抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答,保存至html文件,该html文件的文件名应该是20160228_zhihu_today_hot.html,也就是日期+zhihu_toda ...
- Python 全栈开发九 日志模块
日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情.一个事件可以用一个可包含可选变量数据的消息来描述.此外,事件也有重要性的概念 ...
- Python 打包——过去、现在与未来
英文 | Python packaging - Past, Present, Future[1] 原作 | BERNAT GABOR 译者 | 豌豆花下猫 声明 :本文获得原作者授权翻译,转载请保留原 ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
- Python 打包和发布方法汇总
以下主要Python打包汇总,作为学习备份: 一.使用python内部基础工具包Distutils打包程序 1. 在打包之前需要做的就是配置好安装脚本,一般为setup.py文件: 示例(setup. ...
随机推荐
- 【JZOJ6246】【20190627】B
题目 求逆续对个数为\(k\)的\(n\)阶排列个数\(mod \ 1e9+7\) $1 \le n , k \le 10^5 $ 题解 $f_{i,j} = \sum_{k=0}^{i-1} f ...
- win10系统2分钟睡眠
https://blog.csdn.net/widenstage/article/details/78982722 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe ...
- 使用apt-mirror搭建debian镜像源
debian官方提供了脚本ftpsync来搭建源镜像,而 apt-mirror 是一个更简单便捷的源镜像搭建工具. 安装 apt-mirror sudo apt-get install apt-mir ...
- zabbix-常规配置
zabbix server:cat zabbix_server.confLogFile=/data/log/zabbix_server.logLogFileSize=250DebugLevel=3Pi ...
- 哈希表查找(散列表查找) c++实现HashMap
算法思想: 哈希表 什么是哈希表 在前面讨论的各种结构(线性表.树等)中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较.这一类 ...
- 七年老运维实战中的 Shell 开发经验总结【转】
无论是系统运维,还是应用运维,均可分为“纯手工”—> “脚本化”—> “自动化”—>“智能化”几个阶段,其中自动化阶段,主要是将一些重复性人工操作和运维经验封装为程序或脚本,一方面避 ...
- 微信小程序for循环中传递动态参数
for循环中的参数,没法传到对应的 js里,所以直接在 wxml页面上跳转 发送参数的 wxml页面 <view class="uploader" wx:for=" ...
- yum提示problem making ssl connection的解决办法
yum缓存提示problem making ssl connection的解决办法 缺少ssl证书认证本地获取的问题导致,解决办法如下: 执行命令:yum install -y ca-certific ...
- pip安装yaml
1.安装:输入pip install pyyaml或者pip3 install pyyaml 2.检查是否安装成功:输入python
- 开源:dotNET.Boilerplate For .net core 开发框架
git地址: https://gitee.com/conan5566linyiling/conan.net dotNET.Boilerplate is an open source applicati ...