Tarea programada básica del servidor web Corte de sondeo de registro de Nginx


Este entorno se basa en el sistema Centos 7.8 para crear el entorno de aprendizaje de Nginx. Para
una construcción específica, consulte Implementación del entorno Nginx-1.18.0

Nginx sirve como un servidor web muy poderoso y un servidor proxy inverso. Implemente en negocios en línea, especialmente sitios web que han experimentado un aumento en el volumen de negocios en línea. El volumen de acceso al servidor Nginx es muy grande, y el enorme volumen de acceso también ha provocado el aumento de archivos de registro, especialmente el registro de acceso del servicio Nginx. Todo lo que necesitamos para planificar el sondeo de registros y el corte de los registros de acceso de Nginx.


El servicio Nginx yum se implementa en línea y el corte de registro se implementó automáticamente, pero la instalación del código fuente requiere una configuración manual por parte del administrador.

1. Registro de corte de sondeo en modo yum

Ver el archivo de corte de registro predeterminado del servicio nginx

[root@node01 ~]# vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {
    
    
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

2. Registro de corte de sondeo en modo de código fuente

1. Método uno (archivo de configuración)

logrotate en sí se ejecuta como una tarea programada

[root@node02 ~]# vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log {
    
    
        dateext
        daily
        missingok
        rotate 30
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /usr/local/nginx/logs/nginx.pid ]; then
                        kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
                fi
        endscript
}

prueba

[root@node02 ~]# logrotate -f /etc/logrotate.d/nginx
[root@node02 ~]# ll /usr/local/nginx/logs/
total 12
-rw-r----- 1 nginx adm    0 Feb 21 20:44 access_2021-02-21.log
-rw-r--r-- 1 nginx root   0 Feb 21 19:45 access.log
-rw-r----- 1 nginx adm    0 Feb 21 20:44 error.log
-rw-r--r-- 1 root  root 620 Feb 21 19:45 error.log-20210221
-rw-r--r-- 1 root  root   5 Feb 21 19:31 nginx.pid

2. Método dos (secuencia de comandos de servicio + tarea programada)

Proporcionar guion

[root@node02 ~]# mkdir /scripts
[root@node02 ~]# cd /scripts
[root@node02 scripts]# vim cut_nginx_access_logs.sh
#!/bin/bash

# def var
date_format=$(date +%F)
log_dir=/usr/local/nginx/logs
log_name=access

# main program
[ -d ${log_dir} ] && cd ${log_dir} || exit 1
[ -f ${log_dir}/${log_name}.log ] || exit 1

mv ${log_dir}/${log_name}.log ${log_dir}/${log_name}_${date_format}.log
/usr/local/nginx/sbin/nginx -s reload


[root@node02 scripts]# chmod +x cut_nginx_access_logs.sh
[root@node02 scripts]# sh -n cut_nginx_access_logs.sh 
[root@node02 scripts]# ./cut_nginx_access_logs.sh 
[root@node02 scripts]# ll /usr/local/nginx/logs/
total 12
-rw-r--r-- 1 root root 614 Feb 21 16:41 access_2021-02-21.log
-rw-r--r-- 1 root root   0 Feb 21 19:45 access.log
-rw-r--r-- 1 root root 620 Feb 21 19:45 error.log
-rw-r--r-- 1 root root   5 Feb 21 19:31 nginx.pid

Configurar tareas programadas

[root@node02 scripts]# crontab -e
# cut nginx access logs by wan
00 03 * * * /bin/bash /scripts/cut_nginx_access_logs.sh &> /dev/null

Supongo que te gusta

Origin blog.csdn.net/XY0918ZWQ/article/details/113922532
Recomendado
Clasificación