公司的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日志切割保留一个月相关推荐

  1. python 日志不会按照日期分割_python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...

    #! /usr/bin/env python # -*- coding:utf8 -*- # 切分nginx 按照日期切分日志文件 from __future__ import division im ...

  2. python 日志不会按照日期分割_python实现日志按天分割

    本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下 日志格式: 1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] "POST ...

  3. 日期函数(最近一周/一个月/半年/一年)

    日期函数(最近一周/一个月/半年/一年) // getTime 返回 1970 年 1 月 1 日至今的毫秒数. // setTime(毫秒) 方法以毫秒设置 Date 对象. //今天 functi ...

  4. python 日志不会按照日期分割_django实现日志按日期分割

    settings文件中配置: LOGGING = { 'version':1, 'disable_existing_logger':False, 'formatters':{ 'verbose':{ ...

  5. python把字符串按照指定长度分割_python如何将字符串等长分割

    python将字符串等长分割的方法:1.两个一组分割,代码为[b=re.findall(r'.{2}',aa) ]:2.按照固定长度分割字符串三个字符一组,代码为[re.findall(r'.{3}' ...

  6. python将object转换成日期型_python – Pandas:将dtype’object’转换为int

    我已经在Pandas中读取了一个SQL查询,并且这些值以dtype'object'形式出现,尽管它们是字符串,日期和整数.我能够将日期'对象'转换为Pandas datetime dtype,但是在尝 ...

  7. ASP.NET使用log4Net日志组件教程(按日期与按日志大小切割)

    对于一个大型网站与系统来说,日志是必备的工具,通过日志你可以非常清楚程序的运行情况,及时得到反馈来解决问题,下面介绍ASP.NET版本的log4Net日志组件是个非常强大的工具,最新版本for .ne ...

  8. python 函数参数前面两个星号_Python中参数前面一个星号两个星号(*参数,**参数)起什么作用呢?...

    摘要: 下文讲述Python中参数前面一个星号两个星号的功能分享,如下所示: 在Python语言中,我们经常看见参数前面 加上一个星号或两个星号 那么这些写法到底起什么作用呢? 下文将一一道来,如下所 ...

  9. python的for语句打印金字塔图形_python实现输入任意一个大写字母生成金字塔的示例...

    本文将要为您介绍的是python实现输入任意一个大写字母生成金字塔的示例,具体完成步骤: 输入任意一个大写字母,生成金字塔图形 def GoldTa(input): L = [chr(i) for i ...

最新文章

  1. 学python就业要看哪些书-学习Python适合就业哪些岗位?老男孩Python学习
  2. listen(int fd, int backlog)中的backlog含义
  3. Sublime Text 3 初试牛刀
  4. 有哪些适合大学生浏览的网站?
  5. 飞飞CMS黑色自适应BX8X主题模板
  6. 崛起于Springboot2.X之Mongodb多数据源处理(35)
  7. java之GC日志该怎么看
  8. 《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础
  9. thinkPHP定义路由
  10. java读取照片信息 获取照片拍摄时的经纬度
  11. Vectorworks 2022 SP2 for mac(首选3D建筑设计软件)
  12. 快速去除word中的软回车(向下箭头)
  13. 1.5.12、面向对象下__接口Implement,接口的使用
  14. 微信注册AppID失败
  15. Linux和Windows双系统gpt,Windows+Ubuntu双系统GPTMBR引导设置
  16. 企业搭建私域流量的正确打开方式
  17. Mac 配置教程-开发篇
  18. 适合理工直男的钟平老师逻辑英语学习笔记
  19. python大赛对名_团队作业1——团队展示选题
  20. c语言佛像答案,课程网上考试题库试题(带答案):茶文化赏析

热门文章

  1. centos6中创建软raid方法
  2. NO.152 移动互联时代如何做企业营销
  3. Jquery 获取select,radio 和 checkbox的值
  4. SCVMM 2012 R2---安装SCVMM 2012 R2服务器
  5. Jquery Mobile左右滑动效果
  6. 使用powershell一次性创建用户,OU及组
  7. 父窗口控制子窗口的行为-打开,关闭,重定位,回复
  8. hdu 2045(递推)
  9. 图像分割中mask的保存
  10. NYOJ 371 机器人II