python 日志不会按照日期分割_python日志切割保留一个月
公司的nginx日志都放在一个文件里,时间长了,日志也变的很大,查起来也很不方便,所以决定将nginx的日志切割下,当然日志切割用shell写更方便,但为了让自己多实践下python,故用python来实现。日志切割需求:每天切割nginx日志,保留一个月的即可。以下是具体实现方法。
#!/usr/bin/env python
# coding=utf-8
# author:xupeng(xupeng.js@gmail.com)
# Description:nginx日志切割脚本
# Usage crontab: 59 23 * * * python /path/logcron.py
import os
import glob
import time
import shutil
#日志路径
path = '/htdocs/logs'
#切割后日志路径
cut_path = '/htdocs/cutlogs'
#nginx pid
nginx_pid = '/usr/local/nginx/nginx.pid'
#删除之前一个月的日志目录
year = int(time.strftime("%Y", time.localtime()))
month = int(time.strftime("%m", time.localtime()))
if (month == 1):
year = year - 1
month = 12
else:
month = month - 1
year = str(year)
month = str(month)
if (len(month) == 1):
month = '0' + month
olddir = cut_path +'/' + year + month
if os.path.exists(olddir):
shutil.rmtree(olddir)
#创建目录
cut_path = cut_path + '/' + str(time.strftime("%Y%m", time.localtime())) + '/'
if not os.path.exists(cut_path):
os.makedirs(cut_path)
#切割日志目录下的日志
files = glob.glob("%s/*.log"%(path))
for sfile in files:
filearr = sfile.split('.')
filename = filearr[0]
filename = filename.split(path)
filename = filename[1].replace('/', '')
newfilename = cut_path + filename + '_' + str(time.strftime("%Y%m%d", time.localtime())) + '.log'
#print newfilename
os.system("mv %s %s"%(sfile,newfilename))
#重新打开日志文件
os.system("kill -s USR1 `cat %s`"%(nginx_pid))
python 日志不会按照日期分割_python日志切割保留一个月相关推荐
- python 日志不会按照日期分割_python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...
#! /usr/bin/env python # -*- coding:utf8 -*- # 切分nginx 按照日期切分日志文件 from __future__ import division im ...
- python 日志不会按照日期分割_python实现日志按天分割
本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下 日志格式: 1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] "POST ...
- 日期函数(最近一周/一个月/半年/一年)
日期函数(最近一周/一个月/半年/一年) // getTime 返回 1970 年 1 月 1 日至今的毫秒数. // setTime(毫秒) 方法以毫秒设置 Date 对象. //今天 functi ...
- python 日志不会按照日期分割_django实现日志按日期分割
settings文件中配置: LOGGING = { 'version':1, 'disable_existing_logger':False, 'formatters':{ 'verbose':{ ...
- python把字符串按照指定长度分割_python如何将字符串等长分割
python将字符串等长分割的方法:1.两个一组分割,代码为[b=re.findall(r'.{2}',aa) ]:2.按照固定长度分割字符串三个字符一组,代码为[re.findall(r'.{3}' ...
- python将object转换成日期型_python – Pandas:将dtype’object’转换为int
我已经在Pandas中读取了一个SQL查询,并且这些值以dtype'object'形式出现,尽管它们是字符串,日期和整数.我能够将日期'对象'转换为Pandas datetime dtype,但是在尝 ...
- ASP.NET使用log4Net日志组件教程(按日期与按日志大小切割)
对于一个大型网站与系统来说,日志是必备的工具,通过日志你可以非常清楚程序的运行情况,及时得到反馈来解决问题,下面介绍ASP.NET版本的log4Net日志组件是个非常强大的工具,最新版本for .ne ...
- python 函数参数前面两个星号_Python中参数前面一个星号两个星号(*参数,**参数)起什么作用呢?...
摘要: 下文讲述Python中参数前面一个星号两个星号的功能分享,如下所示: 在Python语言中,我们经常看见参数前面 加上一个星号或两个星号 那么这些写法到底起什么作用呢? 下文将一一道来,如下所 ...
- python的for语句打印金字塔图形_python实现输入任意一个大写字母生成金字塔的示例...
本文将要为您介绍的是python实现输入任意一个大写字母生成金字塔的示例,具体完成步骤: 输入任意一个大写字母,生成金字塔图形 def GoldTa(input): L = [chr(i) for i ...
最新文章
- 学python就业要看哪些书-学习Python适合就业哪些岗位?老男孩Python学习
- listen(int fd, int backlog)中的backlog含义
- Sublime Text 3 初试牛刀
- 有哪些适合大学生浏览的网站?
- 飞飞CMS黑色自适应BX8X主题模板
- 崛起于Springboot2.X之Mongodb多数据源处理(35)
- java之GC日志该怎么看
- 《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础
- thinkPHP定义路由
- java读取照片信息 获取照片拍摄时的经纬度
- Vectorworks 2022 SP2 for mac(首选3D建筑设计软件)
- 快速去除word中的软回车(向下箭头)
- 1.5.12、面向对象下__接口Implement,接口的使用
- 微信注册AppID失败
- Linux和Windows双系统gpt,Windows+Ubuntu双系统GPTMBR引导设置
- 企业搭建私域流量的正确打开方式
- Mac 配置教程-开发篇
- 适合理工直男的钟平老师逻辑英语学习笔记
- python大赛对名_团队作业1——团队展示选题
- c语言佛像答案,课程网上考试题库试题(带答案):茶文化赏析