举杯邀月

使用 shell 命令分割 nginx 日志文件

摘要:nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大。单个的日志文件非常不方便查看分析。所以我们经常有需求对日志文件进行分割。

nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大。单个的日志文件非常不方便查看分析。所以我们经常有需求对日志文件进行分割。

新建 shell 文件 cut_nginx.sh

#!/bin/bash
if [ ! -n "$1" ] ;then
    echo "No file name was found!"
else
    # 要分割的日志名
    logs_name=${1}
    # 设置日志文件存放目录
    logs_path="/home/wwwroot/log/nginx/"
    # 设置日志文件全路径
    logs_file=${logs_path}${logs_name}.log

    if [ -e ${logs_file} ];then
        # 设置pid文件
         pid_path="/usr/local/webserver/nginx/logs/nginx.pid"
         # 重命名日志文件
         mv ${logs_file} ${logs_path}$(date -d "yesterday" +"%Y%m%d").log
         # 向nginx主进程发信号重新打开日志
         kill -USR1 `cat ${pid_path}`
    else
         echo "No current log file was found"
    fi
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

执行命令

sh cut_nginx.sh logname
1
1
1
1

每一步指定的备注已标注在命令中,其实还是很简单的。

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc709345f09e.html

2020-07-06 标签: shellnginx