nginx日志分割

一、应用场景nginx

    当网站访问量大后,日志数据就会不少,若是所有写到一个日志文件中去,文件会变得愈来愈大。文件大速度就会慢下来,好比一个文件几百兆。写入日志的时候,会影响操做速度。另外,若是我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。shell

二、shell脚本bash

    nginx-log-split.sh
网站

    #!/bin/bashspa

    base_path='/home/wwwlogs'                            # nginx设置的日志保存目录日志

    log_path=$(date -d yesterday +"%Y%m")        # 日志分割以后保存地址orm

    day=$(date -d yesterday +"%d")                      # 日志名进程

    mkdir -p $base_path/$log_pathit

    mv $base_path/access.log $base_path/$log_path/access_$day.logast

    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

    一、nginx 的主进程收到USR1信号,会从新打开日志文件(以nginx配置文件中的日志名称命名,就是配置文件中access_log项所设置的值,若是文件不存在,会自动建立一个新的文件xxx.log)。

   二、而后把日志文件的拥有者改成“工做进程(worker进程)”,目的是让worker进程就具有了对日志文件的读写权限(master和worker一般以不一样用户运行,因此须要改变拥有者)。

   三、nginx主进程会关闭重名的日志文件(也就是刚才使用mv命令重命名成xxx.log_ 20130909.log的文件),并通知工做进程使用新打开的日志文件(刚才主进程打开的文件xxx.log)。具体实现上更细化点就是,主进程把USR1信号发给worker,worker接到这个信号后,会从新打开日志文件(也就是配置文件中约定的xxx.log)

三、nginx日志分割下载到本地

    能够经过ansys完成

相关文章
相关标签/搜索