Centos 100% Festplatte voll - Wie entferne ich Protokolldateien, Verlauf usw.?

8

mysqld wird nicht gestartet, 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

Laufen 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/sda5gibt es Website-Dateien in /var/www.

Da dies das erste Mal ist, habe ich keine Ahnung, welche Dateien entfernt werden sollen, außer /var/wwwauf eine andere Partition zu verschieben

Und noch eine: Was ist der richtige Weg, um Protokolldateien, Verlauf usw. zu entfernen /dev/sda5?

kopeklan
quelle

Antworten:

2

Schnell und schmutzig: Bewegen Sie sich /var/wwwzu und erstellen Sie /home/wwweinen Symlink:

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

Längerfristig: Legen Sie Ihre /var/wwwund /var/logVerzeichnisse möglicherweise in eigenen Partitionen ab. Sie könnten wahrscheinlich verkleinern /homeund den freigewordenen Platz nutzen, um geeignete Partitionen zu erstellen.

Steven Montag
quelle
2
  1. Ich würde mv /var/log/*gz /var/log/*.0 /home/backup/var/log
  2. yum clean packages oder apt-get clean, um Inhalte aus / var / cache zu entfernen
  3. Ja, bewege / var / www nach eg / home
  4. Entfernen Sie möglicherweise die Partition / var.
Erik Johansson
quelle
FWIW: Ich mag es nicht wirklich, Partitionen zu verwenden, wenn es keinen wirklichen Nutzen für sie gibt. Wenn Sie sie als administrative Grenzen verwenden möchten, sollten Sie LVM / ZFS oder eine einfache Möglichkeit haben, sie zu erweitern.
Erik Johansson
Ich benutze Partition auch nicht wirklich gerne ...
Kopeklan
1

Was ist die Aufteilung /var/lib? Wenn es wie mein System ist, wird das meiste davon (sagen wir 500 MB) von aufgenommen /var/lib/mysql?

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

Für alte Log - Dateien zu entfernen, werden Ihre Protokolle gedreht, zum Beispiel 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.gzetc?

Der offensichtliche Weg, diese zu entfernen, ist nach Alter, z

# 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 Ihren Wünschen entsprechen /etc/logrotate.conf. Ich würde sagen, Sie sollten sie nicht ändern, da sie nicht Ihr Hauptproblem sind, aber vielleicht möchten Sie nur eine Woche lang Protokolle führen. In diesem Fall versuchen Sie Folgendes:

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 noch kein Logrotate haben, ist es etwas schwieriger. Ich würde versuchen, die letzten Einträge mit grep oder tail zu speichern, dann die Datei zu löschen und syslogd neu zu starten (z . B. service syslogd restartoder pkill -HUP syslogd.

Schließlich ist ein Skript, das ich für genau 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
Mikel
quelle