Detaillierte Erläuterung des zeitgesteuerten Protokollschneidens von Nginx

Detaillierte Erläuterung des zeitgesteuerten Protokollschneidens von Nginx

Vorwort

Standardmäßig werden Nginx-Protokolle in eine Datei geschrieben. Um die Protokolle unter jeder Domäne unterscheiden zu können, speichern wir sie normalerweise separat. Trotzdem wird die Datei immer größer, was die Anzeige und Analyse äußerst unpraktisch macht. Normalerweise führen wir täglich Statistiken durch. Lassen Sie uns über die Sortierung der Nginx-Protokolle nach Datum sprechen.

Konfiguration

Ein Skript schreiben

#!/bin/bash
#Logs_PATH initialisieren = /usr/local/nginx/logs
GESTERN=$(Datum -d "gestern" +%Y%m%d)

#Protokolle nach Tag kürzen mv ${LOGS_PATH}/bbs.52itstyle.com.access.log ${LOGS_PATH}/bbs.52itstyle.com.access_${YESTERDAY}.log
mv ${LOGS_PATH}/blog.52itstyle.com.access.log ${LOGS_PATH}/blog.52itstyle.com.access_${GESTERN}.log

#Senden Sie ein USR1-Signal an den Nginx-Hauptprozess, um die Protokolldatei erneut zu öffnen, andernfalls werden nach mv weiterhin Daten in die Datei geschrieben. Der Grund ist: Im Linux-System sucht der Kernel anhand von Dateideskriptoren nach Dateien. Andernfalls kommt es zu einem Fehler bei der Protokollrotation.
kill -USR1 `ps axu | grep "nginx: Masterprozess" | grep -v grep | awk '{print $2}'`

#Löschen Sie die Protokolle von vor 7 Tagen cd ${LOGS_PATH}
finden . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f

Ausfahrt 0

Schreibaufgabe

#Befehl crontab -e ausführen
#In Datei schreiben und speichern 0 0 * * * /home/scripts/cut_del_nginx_logs.sh

crontab

Crond ist ein Daemon-Prozess, der in Linux verwendet wird, um regelmäßig bestimmte Aufgaben auszuführen oder auf die Verarbeitung bestimmter Ereignisse zu warten. Er ähnelt den geplanten Aufgaben in Windows. Bei der Installation des Betriebssystems wird dieses Servicetool standardmäßig installiert und der Crond-Prozess automatisch gestartet. Der Crond-Prozess prüft regelmäßig jede Minute, ob Aufgaben auszuführen sind. Wenn Aufgaben auszuführen sind, werden die Aufgaben automatisch ausgeführt. Die Aufgabenplanung unter Linux ist in zwei Kategorien unterteilt: Systemaufgabenplanung und Benutzeraufgabenplanung.

Planung von Systemaufgaben: Die Arbeit, die das System regelmäßig ausführen muss, wie z. B. das Schreiben von Cache-Daten auf die Festplatte, das Bereinigen von Protokollen usw. Im Verzeichnis /etc befindet sich eine Crontab-Datei. Dabei handelt es sich um die Konfigurationsdatei für die Planung von Systemaufgaben.

Installation des Crontab-Dienstes

Installieren Sie Crontab:

yum installiere Crontabs

Service-Bedienungsanleitung:

service crond start //Dienst starten service crond stop //Dienst beenden service crond restart //Dienst neu starten service crond reload //Konfiguration neu laden

Überprüfen Sie den Status des Crontab-Dienstes:

Crond-Status des Dienstes

Starten Sie den Crontab-Dienst manuell:

Dienst Crond starten

Überprüfen Sie, ob der Crontab-Dienst so eingestellt ist, dass er beim Booten gestartet wird, indem Sie den folgenden Befehl ausführen:

ntsysv

Automatischen Start hinzufügen:

chkconfig –level 35 crond ein

Beschreibung des Crontab-Formats

In der vom Benutzer erstellten Crontab-Datei stellt jede Zeile eine Aufgabe dar und jedes Feld in jeder Zeile stellt eine Einstellung dar. Das Format ist in sechs Felder unterteilt. Die ersten fünf Segmente sind Zeiteinstellungssegmente und das sechste Segment ist das auszuführende Befehlssegment. Das Format ist wie folgt:

In jedem der oben genannten Felder können außerdem die folgenden Sonderzeichen verwendet werden:

  • Sternchen (*): steht für alle möglichen Werte. Wenn das Feld „Tag“ beispielsweise ein Sternchen ist, bedeutet dies, dass der Befehlsvorgang jeden Tag ausgeführt wird, nachdem die Einschränkungen anderer Felder erfüllt sind.
  • Komma (,): Sie können einen durch Kommas getrennten Wertebereich als Liste angeben, zum Beispiel „1,2,5,7,8,9“
  • Mittlerer Strich (-): Sie können den mittleren Strich zwischen ganzen Zahlen verwenden, um einen Bereich von ganzen Zahlen darzustellen. Beispielsweise bedeutet „2-6“ „2,3,4,5,6“.
  • Schrägstrich (/): Mit einem Schrägstrich können Sie die Häufigkeit des Zeitintervalls angeben. „0-23/2“ bedeutet beispielsweise eine Ausführung alle zwei Stunden. Gleichzeitig können Schrägstriche zusammen mit Sternchen verwendet werden. Beispielsweise bedeutet */10 im Minutenfeld eine Ausführung alle zehn Minuten.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zum Nginx-Protokollschneiden nach Datum (Schneiden nach Tag)
  • Shell-Skript zum Schneiden von Nginx-Protokollen
  • Detaillierte Erläuterung der Nginx-Protokollkonfiguration und des Protokollschneidens
  • Nginx-Protokollmodul und Protokoll-Timing-Schnittmethode
  • So schreiben Sie ein Skript, um Nginx-Protokolle täglich unter einem Linux-System zu schneiden
  • Freigabe von Nginx-Protokoll-Ausschneideskripten
  • Detaillierte Erläuterung der Implementierung des Nginx-Protokollschneidens
  • Detaillierter Prozess von Nginx mit Logrotate-Protokollsegmentierung

<<:  So verwenden Sie den Vue-Filter

>>:  Der Unterschied zwischen MySQL-Datenbankhost 127.0.0.1 und localhost

Artikel empfehlen

Vue3 kapselt die Lupeneffektkomponente der Jingdong-Produktdetailseite

In diesem Artikel wird der spezifische Code der V...

MySQL-Tutorial: Datendefinitionssprache (DDL), Beispiel, ausführliche Erklärung

Inhaltsverzeichnis 1. Einführung in die Grundfunk...

So verbergen und entfernen Sie Bildlaufleisten in HTML

1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...

Ausführliches Tutorial zu Installations- und Upgradeproblemen bei MySQL 5.7.30

Keil Da auf dem Computer eine relativ alte MySQL-...

Natives JavaScript-Message Board

In diesem Artikel wird der spezifische JavaScript...

Schritte zum Einrichten einer HTTPS-Website basierend auf Nginx

Inhaltsverzeichnis Vorwort: Verschlüsselungsalgor...

Eine detaillierte Einführung in die Tomcat-Verzeichnisstruktur

Öffnen Sie das dekomprimierte Verzeichnis von Tom...

Der Unterschied zwischen ENTRYPOINT und CMD in Dockerfile

Im Lernprogramm zum Docker-System haben wir geler...

Lösen Sie das Problem der Angabe der UDP-Portnummer im Docker

Wenn Docker einen Container startet, gibt es den ...

So führen Sie SCSS in ein React-Projekt ein

Laden Sie zuerst die Abhängigkeiten herunter Garn...

CentOS 8 Installationshandbuch für Zabbix 4.4

Zabbix-Serverumgebungsplattform ZABBIX Version 4....