你的位置:首页 > 操作系统

[操作系统]nginx按日分割日志

#!/bin/bash#按日切割nginx日志并压缩,加入crontab每天0:00切割#作者:fafu_li#邮箱:fafu_li@live.com & 348926676@qq.com#时间:2015.08.15source /etc/profile  #加载系统环境变量source ~/.bash_profile #加载用户环境变量set -o nounset    #引用未初始化变量时退出set -o errexit   #执行shell命令遇到错误时退出PID="/usr/local/nginx/logs/nginx.pid" #pid目录NGINX="/usr/local/nginx/sbin/nginx"YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #昨天日期LOGS_PATH="/data/nginx/logs" #日志目录server_names=("access_chaoneng") #日志名server_count=${#server_names[@]}#分割日志cut_logs(){  local name=$1  cd $LOGS_PATH  /bin/mv -f ${name}.log ${name}.${YESTERDAY}.log  #向nginx主进程发送 USR1 信号,USR1 信号是重新打开日志文件  #不然nginx主进程写入的还是移动后的日志文件  #三种方式,根据需求使用任意一种  #service nginx reload  #kill -USR1 $(cat $PID)  $NGINX -s reload  tar zcf ${name}.${YESTERDAY}.log.gz ${name}.${YESTERDAY}.log  rm -rf ${name}.${YESTERDAY}.log}#循环分割日志for (( i = 0; i < $server_count; i++ )); do  cut_logs ${server_names[$i]}done