nginx日志切割
# -*- coding: utf-8 -*-
import os
import shutil
from datetime import datetime, timedelta
yesterday = (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d")
year = yesterday.split("-")[0]
month = yesterday.split("-")[1]
day = yesterday.split("-")[2]
# 日志路径
dirpath = '/nginx/logs'
y_m_path = dirpath + "/" + year + "/" + month
# 获取目录下的所有文件和目录
file_all = os.listdir(dirpath)
file_list = []
def bak_path():
"""
判断文件是否存在不存在则创建
:return:
"""
if not os.path.exists(y_m_path):
os.makedirs(y_m_path)
def file_status():
"""
判断是否是文件,如果是文件且不为空,则拼接好路径并追加到列表中
:return:
"""
for i in file_all:
file_path = os.path.join(dirpath, i)
# if os.path.isfile(file_path):
if ".log" in i:
if os.path.getsize(file_path):
file_list.append(file_path)
def mv_file():
"""
移动日志到备份目录
:return:
"""
for i in file_list:
file_name = os.path.split(i)[1].split('.')[0]
shutil.move(i, y_m_path + "/" + file_name + "_" + "%s%s%s.log" % (year, month, day))
def nginx_pid():
os.system('kill -USR1 `cat /var/run/nginx.pid`')
if __name__ == '__main__':
bak_path()
file_status()
mv_file()
nginx_pid()
热爱技术,享受生活,感谢推荐!
浙公网安备 33010602011771号