centos 100% disco pieno - Come rimuovere file di registro, cronologia, ecc.?


8

mysqld non si avvia perché lo spazio su disco è pieno:

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

in esecuzione 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, ci sono file del sito web in /var/www.

perché questa è la prima volta, non ho idea di quali file rimuovere se non spostandomi /var/wwwsu un'altra partizione

E ancora, qual è il modo giusto per rimuovere i file di registro, la cronologia, ecc. /dev/sda5?

Risposte:


2

Veloce e sporco: sposta /var/wwwsu /home/www, quindi crea un collegamento simbolico:

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

A lungo termine: forse metti tu /var/wwwe le tue /var/logdirectory nelle loro partizioni dedicate. Probabilmente potresti restringere /homee utilizzare lo spazio liberato per creare partizioni adatte.


2
  1. Vorrei mv /var/log/*gz /var/log/*.0 /home/backup/var/log
  2. yum clean packages o apt-get clean per rimuovere roba da / var / cache
  3. Sì, sposta / var / www in eg / home
  4. forse rimuovere la partizione / var ..

FWIW: Non mi piace molto usare la partizione quando non c'è un reale utilizzo per loro. Se vuoi usarli come confini amministrativi, è meglio avere LVM / ZFS o un modo semplice per estenderli.
Erik Johansson,

Non mi piace molto usare anche la partizione ...
kopeklan

1

Qual è la rottura /var/lib? Se è come il mio sistema, la maggior parte (diciamo 500 MB) è occupata da /var/lib/mysql?

Gli altri numeri sembrano tutti abbastanza normali e ragionevoli, così commoventi /var/lib/mysqle /var/wwwsono le uniche soluzioni realistiche a lungo termine.

Per la rimozione di vecchi file di log, vengono ruotati vostro log, ad esempio, ce l'hai /var/log/messages, /var/log/messages.1, /var/log/messages.2.gz, ecc, o forse /var/log/messages-20101221, /var/log/messages-20101220.gzecc?

Il modo ovvio per rimuoverli è per età, ad es

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

Inoltre, controlla che le impostazioni di logrotate /etc/logrotate.confsiano quelle che desideri. Direi che non dovresti cambiarli, poiché non sono il tuo problema principale, ma forse vuoi solo tenere i registri di una settimana, nel qual caso prova qualcosa del genere:

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

Quindi ci sono file per ogni servizio, ad esempio syslog, mysql, apache, ecc. Per configurare la rotazione del registro per ognuno di questi. Sui sistemi Debian e Red Hat, questo dovrebbe già essere configurato per te.

Se non hai già logrotato, allora è un po 'più difficile. Vorrei usare grep o tail per salvare le voci recenti, quindi eliminare il file e riavviare syslogd (ad esempio service syslogd restarto pkill -HUP syslogd.

Infine, è una sceneggiatura che ho scritto proprio per questa situazione 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.