Mein Linux-Protokoll und meine Protokolldateien

627
Stephane

Ich kann einige große Protokolldateien auf meinem Server sehen:

stephane@data:~$ ls -lS /var/log total 55G -rw-r----- 1 root 15G août 9 23:32 syslog.1 -rw-r----- 1 root 15G août 9 23:32 mail.log.1 -rw-r----- 1 root 15G août 9 23:32 mail.info.1 -rw-r----- 1 root 12G août 9 23:32 mail.warn.1 -rw-r----- 1 root 286M août 9 22:21 mail.err.1 -rw-r----- 1 root 82M août 9 10:32 daemon.log.1 -rw-r----- 1 root 2,0M août 9 23:32 messages.1 -rw-r----- 1 root 1,8M août 9 23:31 auth.log.1 -rw-r----- 1 root 1,7M nov. 14 2016 daemon.log.4.gz -rw-r----- 1 root 1,7M nov. 28 2016 daemon.log.2.gz -rw-r----- 1 root 1,5M août 8 04:38 user.log.1 -rw-rw-r-- 1 root 1,4M août 9 23:31 lastlog -rw-r----- 1 root 1,3M nov. 20 2016 daemon.log.3.gz -rw-r----- 1 root 659K août 9 09:57 kern.log.1 -rw-r----- 1 root 466K août 9 23:42 syslog 

Ich sehe, dass das logrotateDienstprogramm auf dem Server installiert ist:

stephane@data:~$ cat /etc/cron.daily/logrotate #!/bin/sh  test -x /usr/sbin/logrotate || exit 0 /usr/sbin/logrotate /etc/logrotate.conf 

Und es hat einige Konfigurationsdateien:

stephane@data:~$ ll /etc/logrotate.d total 52K -rw-r--r-- 1 root 433 nov. 28 2015 apache2 -rw-r--r-- 1 root 173 oct. 17 2014 apt -rw-r--r-- 1 root 79 nov. 7 2012 aptitude -rw-r--r-- 1 root 113 mai 24 2013 cron-apt -rw-r--r-- 1 root 232 juin 5 2014 dpkg -rw-r--r-- 1 root 313 mars 19 2014 fail2ban -rw-r--r-- 1 root 847 janv. 27 2016 mysql-server -rw-r--r-- 1 root 330 févr. 10 2016 nginx -rw-r--r-- 1 root 152 mars 14 2016 php5-fpm -rw-r--r-- 1 root 126 juin 8 2012 redis-server -rw-r--r-- 1 root 162 mai 26 2012 rkhunter -rw-r--r-- 1 root 553 août 9 23:38 rsyslog -rw-r--r-- 1 root 235 juin 15 2015 unattended-upgrades 

Ich sehe, dass eine dieser Konfigurationsdateien die Bereinigung durchführen sollte:

stephane@data:~$ cat /etc/logrotate.d/rsyslog /var/log/syslog { rotate 4 daily size 1024k missingok notifempty delaycompress compress postrotate invoke-rc.d rsyslog rotate > /dev/null endscript }  /var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log /var/log/daemon.log /var/log/kern.log /var/log/auth.log /var/log/user.log /var/log/lpr.log /var/log/cron.log /var/log/debug /var/log/messages { rotate 4 weekly size 1024k missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } 

Das Ausführen des logrotateDienstprogramms scheint in Ordnung zu sein:

stephane@data:~$ sudo /usr/sbin/logrotate /etc/logrotate.conf 

Wie kann ich sehen, ob das logrotateheute gelaufen ist?

Wie kann ich mich logrotateum diese 3 Dateien kümmern?

Danke für alle Richtungen.

1

2 Antworten auf die Frage

0
user3761842

Ich sehe, dass Sie die Cron-Protokolle nicht aktiviert haben oder zumindest die Standarddatei fehlt. Das bedeutet höchstwahrscheinlich, dass der Cron-Eintrag in /etc/syslog.confoder /etc/rsyslog.confkommentiert ist. Ich werde das rsyslog.confBeispiel von jetzt an verwenden, aber Ihr System verwendet möglicherweise den alten Syslog-Daemon mit der alten syslog.confDatei.

Bearbeiten Sie diese Datei und finden Sie den Eintrag, der mit cron beginnt, und kommentieren Sie ihn mit einem Kommentar. Mein war auf einem stabilen Debian-System wie folgt:

cron.* /var/log/cron.log 

Nachdem Sie die Datei geändert und gespeichert haben, beenden Sie den Dienst syslog / rsyslog wie folgt:

systemctl restart rsyslog 

oder bei älteren Versionen mit dem init-System wie folgt:

/etc/init.d/rsyslog restart 

und erstellen Sie die Protokolldatei folgendermaßen:

> /var/log/cron 

Dort sollten auch neue Einträge für Ihren Cron-Daemon erscheinen.

Bitte überprüfen Sie Ihre rsyslog.confDatei, um zu sehen, ob es andere Einträge gibt, die Cron-Nachrichten an andere Stellen umleiten. Ich hatte das in meinem:

*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages 

und das bedeutet, dass mehrere arten von nachrichten, darunter auch solche, die von cron stammen, an die datei gesendet /var/log/messageswerden und möglicherweise bereits dort eine antwort haben.

Abhängig von Ihrer Linux-Distribution können Ihre Dateinamen variieren.

Ja, der Eintrag `# cron. * / Var / log / cron.log` wurde in der Datei` / etc / rsyslog.conf` auskommentiert. Ich entfernte es unkommentiert. Ich startete dann den Dienst "sudo /etc/init.d/rsyslog restart" neu und es wurde "[....] Neustart von rsyslog (über systemctl): rsyslog.service" angezeigt. Er hing jedoch dort und gab mir nie die Aufforderung zurück . Die Überprüfung des Status zeigte an, dass er jedoch erneut gestartet wurde: `sudo /etc/init.d/rsyslog status`` Active: aktiv (läuft) seit dem Jeu. 2017-08-10 14:38:06 CEST; Vor 1min 4s`` Stephane vor 7 Jahren 0
Ich habe dann die `sudo touch / var / log / cron`-Datei erstellt, die jetzt leer ist. Ich bin auf einem `Linux data 3.2.0-4-amd64 # 1 SMP Debian 3.2.68-1 + deb7u5 x86_64 GNU / Linux`-System. Stephane vor 7 Jahren 0
Hast du die andere Zeile mit Cron in Rsyslog? Der, der alles an / var / log / messages anfügt? Wieder kann Ihre Distribution sie an einen anderen Ort senden. Ich würde das auch überprüfen, um zu sehen, ob cron vielleicht schon Nachrichten dort ablegt und wir kümmern uns dann nicht um die Datei /var/log/cron.log. Bitte überprüfen Sie auch die Berechtigungen der anderen Dateien in / var / log und ob sie sich unterscheiden , passen Sie die Berechtigungen für die Datei cron.log an. Überprüfen Sie auch / var / log / messages auf Fehler, warum rsyslog nicht neu gestartet wird. user3761842 vor 7 Jahren 0
Ja, ich denke, der andere cron-Eintrag, den Sie erwähnen, ist: *. = Info; *. = Note; *. = Warn; \ auth, authpriv.none; \ cron, daemon.none; \ mail, news.none - / var / log / messages`. Ich habe auch gerade den `rsyslog`-Status noch einmal überprüft und ich kann diese Warnung sehen:` Warnung: Das Journal wurde gedreht, seit das Gerät gestartet wurde. Die Protokollausgabe ist unvollständig oder nicht verfügbar. " Stephane vor 7 Jahren 0
Ich habe gerade versucht, `sudo /etc/init.d/rsyslog restart` neu zu starten, aber es hängt, und der Status wird nicht aktualisiert. Sudo /etc/init.d/rsyslog status` gibt` Active: active (running) seit jeu 2017-08-10 14:44:01 CEST; Vor 2 Wochen 4 Tagen` und beim Ansehen der Protokolldatei `tail -200f / var / log / messages` wurde absolut nichts in die Datei ausgegeben. Natürlich bin ich Wurzel in all diesen Schalen. Stephane vor 7 Jahren 0
Ich habe es erneut versucht, es neu zu starten, und diesmal wurde es neu gestartet, obwohl es sich veränderte und ich die Aufforderung nie zurückgegeben habe. Das Nachrichtenprotokoll hatte folgendes zu zeigen: 29. August 11:27:21 Daten rsyslogd: [ursprungssoftware = "rsyslogd" swVersion = "8.4.2" x-pid = "15845" x-info = "http: // www .rsyslog.com "] Start 29. Aug. 11:28:39 Daten rsyslogd-2007: Aktion" Aktion 18 "ausgesetzt, nächster Wiederholungsversuch ist Di., 29. Aug., 11:29:09 2017 [try http://www.rsyslog.com/ e / 2007 “ Stephane vor 7 Jahren 0
0
user3761842

Bei einer schnellen Suche im Internet in Bezug auf diesen Fehler habe ich festgestellt, dass es sich um einen Debian-Jessie-Fehler handelt, der in Ihrer Situation merkwürdig ähnlich ist und aus / dev / xconsole liest.

Hast du so etwas in deiner conf-Datei?

daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole 

Ich bin nicht sicher, ob ich Links hinzufügen kann, aber überprüfen Sie Folgendes : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745492 und https://bugs.debian.org/cgi-bin/bugreport. cgi = Fehler = 742113

Ich hoffe es hilft.