(In dieser Frage geht es um ein ähnliches Problem, es handelt sich jedoch um eine gedrehte Protokolldatei.)
Heute habe ich eine Systemmeldung bezüglich sehr wenig /var
Speicherplatz erhalten.
Wie üblich habe ich die Befehle ausgeführt, in deren Zeile sudo apt-get clean
sich das Szenario nur geringfügig verbessert hat. Dann habe ich die gedrehten Logdateien gelöscht, was wiederum nur eine geringe Verbesserung brachte.
Bei der Überprüfung stelle ich fest, dass einige Protokolldateien in der /var/log
sehr große geworden sind. Um genau zu sein, ls -lSh /var/log
gibt,
total 28G -rw-r----- 1 syslog adm 14G Aug 23 21:56 kern.log -rw-r----- 1 syslog adm 14G Aug 23 21:56 syslog -rw-rw-r-- 1 root utmp 390K Aug 23 21:47 wtmp -rw-r--r-- 1 root root 287K Aug 23 21:42 dpkg.log -rw-rw-r-- 1 root utmp 287K Aug 23 20:43 lastlog
Wie wir sehen können, sind die ersten beiden die Beleidigenden. Ich bin leicht überrascht, warum so große Dateien nicht gedreht wurden.
Also was soll ich tun? Einfach diese Dateien löschen und dann neu starten? Oder umsichtiger vorgehen?
Ich benutze Ubuntu 14.04.
UPDATE 1
Das System ist zunächst nur einige Monate alt. Ich musste das System vor ein paar Monaten nach einem Festplattencrash von Grund auf neu installieren.
Nun, wie in dieser Antwort empfohlen , habe ich zuerst die fehlerhaften Protokolldateien mit überprüft tail
, was dort keine Überraschung ist. Dann habe ich zur genaueren Betrachtung dieses Skript mit der gleichen Antwort ausgeführt .
for log in /var/log/{syslog,kern.log}; do
echo "${log} :"
sed -e 's/\[[^]]\+\]//' -e 's/.*[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}//' ${log} \
| sort | uniq -c | sort -hr | head -10
done
Der Vorgang dauerte mehrere Stunden. Die Ausgabe war in der Zeile von,
/var/log/syslog : 71209229 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 53929977 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 17280298 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 54763121030042024) <snipped> /var/log/kern.log.1 : 71210257 Rafid-Hamiz-Dell kernel: attempt to access beyond end of device 71209212 Rafid-Hamiz-Dell kernel: sda3: rw=1, want=7638104968240336200, limit=1681522688 1639 Rafid-Hamiz-Dell kernel: EXT4-fs warning (device sda3): ext4_end_bio:317: I/O error -5 writing to inode 6819258 (offset 0 size 4096 starting block 954763121030042024)
( /dev/sda3
ist mein Heimatverzeichnis. Wie wir finden können,
lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 122.1G 0 part / ├─sda2 8:2 0 7.6G 0 part [SWAP] └─sda3 8:3 0 801.8G 0 part /home
Warum ein Prozess über das Limit hinaus schreiben möchte, liegt eigentlich außerhalb meines Verständnisses. Vielleicht möchte ich in diesem Forum eine andere Frage stellen, wenn dies auch nach einem System-Update so bleibt.)
Dann, aus dieser Antwort (Sie können dies für ein tieferes Verständnis überprüfen wollen ), führte ich aus,
sudo su -
> kern.log
> syslog
Diese Dateien haben jetzt die Größe Null. Das System läuft vor und nach einem Neustart einwandfrei.
Ich werde diese Dateien (zusammen mit anderen) in den nächsten Tagen ansehen und zurückmelden, falls
sie sich außerhalb der Reihe verhalten.
Als letzte Anmerkung werden beide fehlerhaften Dateien ( kern.log
und syslog
) gedreht, wie die Prüfung der Dateien ( grep
Hilfe) im Inneren
/etc/logrotate.d/
zeigt.
UPDATE 2
Die Protokolldateien werden tatsächlich gedreht. Sieht aus wie die großen Größen an einem einzigen Tag erreicht wurden.