CentOS: 100 % Festplatte voll – Wie entferne ich Protokolldateien, Verlauf usw.?

CentOS: 100 % Festplatte voll – Wie entferne ich Protokolldateien, Verlauf usw.?

mysqld startet nicht, da der Speicherplatz voll ist:

101221 14:06:50 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
101221 14:06:50 [ERROR] Can't start server: can't create PID file: No space left on device

läuft df -h:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              16G  3.2G   12G  23% /
/dev/sda5             4.8G  4.6G     0 100% /var
/dev/sda3             430G  855M  407G   1% /home
/dev/sda1              76M   24M   49M  33% /boot
tmpfs                 956M     0  956M   0% /dev/shm

du -sh *In /var:

12K     account
56M     cache
24K     db
32K     empty
8.0K    games
1.5G    lib
8.0K    local
32K     lock
221M    log
16K     lost+found
0       mail
24K     named
8.0K    nis
8.0K    opt
8.0K    preserve
8.0K    racoon
292K    run
70M     spool
8.0K    tmp
76K     webmin
2.6G    www
20K     yp

in /dev/sda5, es gibt Website-Dateien in /var/www.

weil dies das erste Mal ist, habe ich keine Ahnung, welche Dateien ich entfernen soll, außer sie /var/wwwauf eine andere Partition zu verschieben

Und noch eine Frage: Was ist die richtige Methode zum Entfernen von Protokolldateien, Verlauf usw. /dev/sda5?

Antwort1

Schnell und einfach: Verschieben Sie Ihr /var/wwwnach /home/wwwund erstellen Sie dann einen symbolischen Link:

rsync -a /var/www /home &&
rm -r /var/www &&
ln -s /home/www /var/www

Längerfristig: Vielleicht legen Sie Ihre /var/wwwund /var/logVerzeichnisse in eigene dedizierte Partitionen. Sie könnten /homeden frei gewordenen Speicherplatz wahrscheinlich verkleinern und verwenden, um geeignete Partitionen zu erstellen.

Antwort2

  1. Ich würdemv /var/log/*gz /var/log/*.0 /home/backup/var/log
  2. yum clean packagesoder apt-get clean, um Inhalte aus /var/cache zu entfernen
  3. Ja, verschiebe /var/www zB nach /home
  4. Entfernen Sie möglicherweise die /var-Partition.

Antwort3

Wie sieht die Aufteilung aus /var/lib? Wenn es wie bei meinem System ist, wird der Großteil (sagen wir 500 MB) von belegt /var/lib/mysql?

Die anderen Zahlen sehen alle ziemlich normal und vernünftig aus, sind also bewegend /var/lib/mysqlund /var/wwwstellen die einzigen realistischen langfristigen Lösungen dar.

Werden Ihre Protokolle zum Entfernen alter Protokolldateien rotiert, d. h. haben Sie /var/log/messages, /var/log/messages.1, /var/log/messages.2.gz, usw. oder vielleicht /var/log/messages-20101221, /var/log/messages-20101220.gz, usw.?

Der offensichtlichste Weg, diese zu entfernen, ist nach Alter, z. B.

# find /var/log -type f -mtime +14 -print
# find /var/log -type f -mtime +14 -exec rm '{}' \;

Überprüfen Sie außerdem, ob Ihre Logrotate-Einstellungen /etc/logrotate.confIhren Wünschen entsprechen. Ich würde sagen, Sie sollten sie nicht ändern, da sie nicht Ihr Hauptproblem sind, aber vielleicht möchten Sie nur die Protokolle einer Woche behalten. In diesem Fall versuchen Sie es mit etwas wie diesem:

daily
rotate 7
create
compress
include /etc/logrotate.d

Dann gibt es Dateien für jeden Dienst, z. B. Syslog, MySQL, Apache usw., um die Protokollrotation für jeden dieser Dienste zu konfigurieren. Auf Debian- und Red Hat-Systemen sollte dies bereits für Sie eingerichtet sein.

Wenn Sie logrotate noch nicht haben, ist es etwas schwieriger. Ich würde versuchen, grep oder tail zu verwenden, um die letzten Einträge zu speichern, dann die Datei zu löschen und syslogd neu zu starten (z. B. service syslogd restartoder pkill -HUP syslogd).

Und schließlich gibt es hier ein Skript, das ich genau für diese Situation geschrieben habe diskuse:

# test -d ~/bin || mkdir ~/bin
# svn cat http://svn.mikelward.com/svn/scripts/diskuse > ~/bin/diskuse
# chmod +x ~/bin/diskuse
# ~/bin/diskuse -A /var > ~/biggest-files-in-var.txt
# head ~/biggest-files-in-var.txt
# ~/bin/diskuse -T -A /var > ~/biggest-dirs-in-var.txt
# head ~/biggest-dirs-in-var.txt
# ~/bin/diskuse -a 1d /var > ~/biggest-files-in-var-that-changed-today.txt
# head ~/biggest-files-in-var-that-changed-today.txt

verwandte Informationen