nginx中access日志如何作到按时间完美切割

nginx web服务器中access日志,默认是不能按时间分隔的,每第二天志都是打在access.log上,这样长此以往这个日志文件就特别的大,也不利于清理和管理,故此咱们确定是须要作时间上的切割的,那么如何作到完美的切割的呢?linux

咱们采起的方案是利用shell脚本和crontab定时任务来作nginx

好比新建一个nginx_time_log.sh脚本,里面的内容以下
(固然也能够使用linux中的logrotate来作日志切割)web

!/bin/bash

local_path=/home/work/tp/log/webserver #找到您服务器中存放access日志的目录shell

cd $local_path #进入这个目录bash

mv access_log $local_path/access_log date +%Y%m%d%H #把当前的access_log挪到这个时期下,其实就是至关于日志的切分服务器

nginx_pid=ps -ef |grep -v grep |grep “nginx: master process “|awk -F” ” ‘{print $2}’ #找到您nginx的进程spa

kill -USR1 $nginx_pid #执行usr1日志


这样就会先把access_log 移动到一个access_log.时间 的日志文件,而且会新生产一个access_log文件code

最后经过定时任务来让这个nginx_time.sh脚本按每小时来进行切分server

crontab命令以下:

0 /1 sh /xxx(您这个脚本的存放命令)/nginx.sh 按每小时切割

clipboard.png

相关文章
相关标签/搜索