全栈编程

Balance $ 2,317
Item Sold 1230
文章作者: 全栈编程@luboke.com
版权声明: 本文章为go语言体系课视频教程配套电子书,版权归 全栈编程@luboke.com所有,欢迎免费学习,转载必须注明出处!但禁止任何商业用途,否则将受到法律制裁!

以下两脚本定时移动nginx日志,重启nginx日志进程(通过向nginx发送USR1信号,重新生成nginx日志,不会影响nginx服务。日志会有极小部分损失,估计是移动日志或重启时日志文件锁住造成的丢失),实现按天切割,按小时切割nginx日志。

按天自动切割nginx日志

vim /usr/local/sbin/nginx_log_day.sh,添加以下内容

#!/bin/bash
logs_path="/var/log/nginx/"
mv ${logs_path}nginx_access.log ${logs_path}nginx_access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/nginx.pid`

crontab -e,添加以下内容,指定每天0点执行日志切割脚本

00 00 * * * /bin/bash  /usr/local/sbin/nginx_log_day.sh

 

按小时自动切割nginx日志

vim /usr/local/sbin/nginx_log_hour.sh,添加以下内容

#!/bin/bash
log_dir="/home/wwwlogs/luboke.com/"
date_dir=`date +%Y%m%d`
#收下这句用于判断,当时间为凌晨00:00时,将date_dri设为昨天
if [ "`date +%H`" = "00" ]; then
  date_dir=`date -d "yesterday" +%Y%m%d`
fi
#将当前小时减一,因为记录的是之前的访问数据
tag=`date +%Y%m%d%H --date="-1 hour"`
/bin/mkdir -p ${log_dir}${date_dir}
mv ${log_dir}luboke.com_access.log ${log_dir}${date_dir}/luboke.com_access_${tag}.log
kill -USR1 `cat /usr/local/nginx/nginx.pid`

crontab -e,添加以下内容,指定每小时执行日志切割脚本

00 */1 * * * /bin/bash  /usr/local/sbin/nginx_log_hour.sh
文章作者: 全栈编程@luboke.com
版权声明: 本文章为go语言体系课视频教程配套电子书,版权归 全栈编程@luboke.com所有,欢迎免费学习,转载必须注明出处!但禁止任何商业用途,否则将受到法律制裁!
copyright © 2020 全栈编程@luboke.com