GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie kann verhindert werden, dass Protokolle zu groß werden?

Ich habe einen Cronjob, der einige Python-Skripte ausführt und eine riesige Protokolldatei generiert. Wie verhindere ich, dass sie so groß werden? Es wäre perfekt, wenn die Datei gelöscht würde, sobald sie eine bestimmte Größe erreicht hat. Denn alle paar Tage ist die Datei jetzt 50 MB groß, wird aber viel größer und das Herunterladen und Analysieren eines Fehlers bei einer langsamen Internetverbindung dauert ewig. Ich möchte wirklich nur die letzten 1000 Zeilen sehen, um zu sehen, wo das Skript schief gelaufen ist.

Ich weiß, dass ich etwas dafür codieren könnte, aber ich habe mich nur gefragt, ob Linux etwas hat, von dem ich nichts weiß. Ich kann mir vorstellen, dass große Protokolldateien ein häufiges Problem sind. Danke.

Akzeptierte Antwort:

Normalerweise sollten Sie nur die Aktivitäten protokollieren, die Sie interessieren, und das Programm so konfigurieren, dass es nach Möglichkeit weniger ausführlich ist.

Wie vorgeschlagen, mit logrotate ist der übliche Umgang mit Logfiles. Aber anstatt Inhalte zu /etc/logrotate.conf hinzuzufügen Sie sollten Ihren eigenen Job zu /etc/logrotate.d/ hinzufügen , andernfalls müssten Sie sich während Release-Upgrades weitere Unterschiede von Konfigurationsdateien ansehen.

Hier ist ein Beispiel, das ich für ein PHP-Skript erstellt habe:

/var/log/some-php-app/*.log {
        daily
        rotate 10
        delaycompress
        compress
        notifempty
        missingok
}
  • /var/log/some-php-app/*.log – Ist der Pfad, in dem sich die Protokolldatei(en) befindet, und ihr Name. Wie Sie sehen können, können Sie auch Platzhalter verwenden, um die Regel auf mehr als eine Protokolldatei anzuwenden.
  • täglich – Rotiert die Protokolldateien täglich. Alternativen:stündlich, wöchentlich, monatlich, jährlich, maxsize, maxage
  • drehen zählen – Dateien werden gezählt, bevor sie entfernt oder an die in einer E-Mail-Anweisung angegebene Adresse gesendet werden.
  • delaycompress – Verschiebt die Komprimierung der vorherigen Protokolldatei auf den nächsten Rotationszyklus.
  • komprimieren – Komprimiert alte Versionen von Protokolldateien mit gzip. Sie können zless verwenden statt less um die Dateien anzuzeigen.
  • Benachrichtigung leer – Dreht das Protokoll nicht, wenn es leer ist.
  • fehltok – Geht ohne Fehlermeldung weiter zum nächsten Rotationsjob, wenn die Logdatei fehlt.

Werfen Sie einen Blick auf die logrotate-Manpage für weitere Optionen.


Ubuntu
  1. Wie liest man eine Variable aus einer Datei?

  2. Wie erstelle ich eine .img-Datei aus .iso auf Ubuntu?

  3. Wie installiere ich Ubuntu aus einer Iso-Datei?

  4. Wie melde ich mich bei einem Admin-Konto von einem Nicht-Admin-Konto an?

  5. Wie erstelle ich eine .click-Datei aus einer installierten App?

So können Sie Linux-Protokolldateien anzeigen und lesen

So verhindern Sie ein Timeout von SSH

So zeigen Sie Daten aus einer Textdatei in Linux an

So verhindern Sie, dass PHP-FPM unter Linux zu viel RAM verbraucht

Wie verhindert man, dass /var/log/kern.log.1 den gesamten Speicherplatz verbraucht?

Wie greife ich von Ubuntu auf Windows-Dateien zu?