Problemprotokoll und Bash-Skript

Problemprotokoll und Bash-Skript

Ich habe 11 Debian-Server, die auf Rackspace Cloud-Hosting laufen. Alle laufen mit VHCS2 für die Hosting-Verwaltung. 1 Server wird für Anwendungen verwendet und 10 werden nur für SMTP verwendet. Meine Frage betrifft SMTP-Server. Jeder Server hostet 1 Domäne. Mein Problem ist, dass, wenn mein Client SMTP verwendet, in diesem Verzeichnis ein Protokoll erstellt wird

/var/log/

aber innerhalb von 24 Stunden sind die Laufwerke voll und der Server lehnt alle SMTP-Verbindungen ab. Dann habe ich die Protokolle gelöscht und den folgenden Befehl ausgeführt, um den Speicherplatz zu überprüfen.

df -h

aber es zeigt, dass die Festplatte immer noch voll ist und der Server immer noch die SMTP-Verbindungen ablehnt. Dann habe ich den folgenden Befehl ausgeführt, um die Wahrheit herauszufinden

du --max-depth=1 -h

Es zeigt die Wahrheit. Der tatsächlich verwendete Speicherplatz. Dann habe ich den Server neu gestartet und jetzt funktioniert der Server einwandfrei. Aber nach ein paar Stunden trat dieselbe Situation auf. Dann habe ich das folgende Skript erstellt.

#!/bin/sh

rm -fr /var/log/*
rm -fr /var/log/apache2/*.log
rm -fr /var/log/apache2/*.log.*
rm -fr /var/log/apache2/users/*
rm -fr /var/log/apache2/backup/*

reboot

Es hat tagelang funktioniert, aber danach füllen die Protokolle die Festplatte erneut.

Jetzt möchte ich die folgenden Lösungen. Wenn mir jemand helfen kann.

  1. Wenn ich Dateien vom Server lösche, wird die Festplatte ohne Neustart freigegeben
  2. Das Protokoll sollte in einem bestimmten Bereich liegen. Wie eine bestimmte Dateigröße, bei der alte Daten durch neue Daten überschrieben werden

Antwort1

  1. Das Löschen der Protokolldateien allein hilft nicht. Sie müssen dem Daemon mitteilen, dass er die Protokolldatei schließen soll. Dies geschieht normalerweise durch Senden eines SIGHUP.
  2. logrotatesoll die Protokolle handhaben und kann verschiedene Kriterien verwenden, um zu bestimmen, wann das Protokoll rotiert werden soll.
  3. Ihre Protokolle füllen sichschrecklichschnell. Finden Sie entweder heraus, was Ihre Protokolle überflutet, senden Sie Ihre Protokolle zur Verarbeitung und Speicherung an einen anderen Rechner oder mounten Sie ein separates Volume unter /var/log, sodass dies das einzige betroffene Volume ist.

Antwort2

Sie müssen wirklich herausfinden, welche Protokolle die Festplatte füllen. Wenn Sie wissen, welche Protokolle das Problem darstellen, sehen Sie sich diese an und finden Sie heraus, warum sie so schnell wachsen.

Werden zu viele Informationen protokolliert? Reduzieren Sie die Protokollierungsstufe der Anwendung.
Werden viele Fehler protokolliert? Untersuchen und beheben Sie diese.
...

Sobald Sie die Kontrolle über die Protokolle haben, können Sie logrotatesie zur Verwaltung verwenden.

verwandte Informationen