1.时间格式: [2022-11-23 16:49:50.197]


【nginx日志截取、割切】_nginx

sed -n '/2022-11-23 16:20:00/,/2022-11-23 16:50:00/p' server.log.2022-11-23.0   >  api.log

2.时间格式: [24/Nov/2022:00:38:32 +0800] (例:nginx \access.log )

【nginx日志截取、割切】_nginx_02

sed -n '/15\/Nov\/2022:09:00:00/,/15\/Nov\/2022:09:25:00/p'  access.log

3.打印匹配行的前后5行

grep -5 'api-sm'  server.log.2022-11-23.0

4.打印匹配行的前后5行

grep -C 5 'api-sm'  server.log.2022-11-23.0

5.打印匹配行的后5行

grep -A 5 'api-sm'  server.log.2022-11-23.0
显示之后的一行(After 1)

6.打印匹配行的前5行

grep -B 5 'api-sm'  server.log.2022-11-23.0
显示之前的一行(Before 1)

7.截取最后1000行日志

tail -f -n 1000  server.log.2022-11-23.0

8.截取前1000行日志

head -n 1000 server.log.2022-11-23.0

9.日志定时割切

#crontab -l
#59 23 * * * /bin/bash /opt/nginxLog/logrotate_nginx_log.sh  > /dev/null 2>&1


nginx_log_path="/opt/nginxLog"

function logrotate_nginx_log(){

  if [ -d "${nginx_log_path}" ]; then
    cd ${nginx_log_path}
    mkdir -p  cutlog/

    cp error.log  cutlog/error-$(date -d "today" +"%Y%m%d").log
	gzip cutlog/
    echo > error.log

    cp access.log cutlog/access-$(date -d "today" +"%Y%m%d").log
	gzip cutlog/
    echo > access.log
    find ${nginx_log_path}/cutlog -mtime +7 -type  f -name "*.log.gz" -exec  rm -f  {}  \;
  fi
}

logrotate_nginx_log
10.安装模块查看
nginx -V 2>&1 | grep -o with-http_stub_status_module