2015 November 17 Python nginx日志切割脚本 之前的日志切割是用shell来写的,不过只是针对一个主站的日志,现在想把所有日志做一处理。 写起shell来真是太麻烦了,随写了如下脚本,留个记录! # -*- coding: utf-8 -*- #!/usr/bin/env python # author:hipeace86 # nginx 日志切割脚本 # www.a.com.log www.a.com-YesterDay(%Y-%m-%d).log import os import datetime LogPath = "/data/logs/nginx" #日志所在目录 BakDir = "/data/logs/nginx/bak" #要备份到的目录 YesterDay = (datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d") if os.path.exists(BakDir): pass else: os.mkdir(BakDir) for root,dirs,files in os.walk(LogPath): for f in files: filename,ext = os.path.splitext(f) os.rename("{0}{1}".format(root,f),"{0}{1}-{2}{3}".format(root,filename,YesterDay,ext)) os.system("kill -USR1 'cat /usr/local/openresty/nginx/logs/nginx.pid'") time.sleep(5) os.system('find {0} -type f -name "*.log" -mtime +7 -exec rm -rf {} \;'.foramt(BakDir)) 只需要改下日志路径,加入到crontab里计划执行就好了