Linux 平台切割
在 Linux 平台上进行切割,需要使用 date 命令以获得昨天的日期、使用 kill 命令向 Nginx 进程发送重新打开日志文件的信号,以及 crontab 设置执行任务周期。
先创建一个 Shell 脚本 nginxlog.sh#!/bin/sh
# Nginx 日志文件所在的目录
log_dir="/usr/local/nginx/logs/"
# 获取昨天的 时间
mkdir -p ${log_dir}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
# 移动文件
mv ${log_dir}access.log ${log_dir}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
# 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
crontab -e 新增一个定时任务
00 00 * * * /usr/local/bin/nginxlog.sh