centos 100% disk penuh - Bagaimana menghapus file log, histori, dll?

8

mysqld tidak akan mulai karena ruang disk penuh:

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

berlari 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 *di /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

di /dev/sda5, ada file situs web di /var/www.

karena ini adalah pertama kalinya, saya tidak tahu file mana yang harus dihapus selain pindah /var/wwwke partisi lain

Dan satu lagi, apa cara yang benar untuk menghapus file log, histori, dll /dev/sda5?

kopeklan
sumber

Jawaban:

2

Cepat dan kotor: Pindahkan /var/wwwke /home/www, lalu buat symlink:

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

Jangka panjang: Mungkin menempatkan direktori Anda /var/wwwdan /var/logke dalam partisi khusus mereka sendiri. Anda mungkin bisa menyusut /homedan menggunakan ruang yang dibebaskan untuk membuat partisi yang cocok.

Steven Monday
sumber
2
  1. saya akan mv /var/log/*gz /var/log/*.0 /home/backup/var/log
  2. yum clean packages atau apt-get clean untuk menghapus barang dari / var / cache
  3. Ya, pindahkan / var / www ke eg / home
  4. mungkin menghapus partisi / var ..
Erik Johansson
sumber
FWIW: Saya tidak begitu suka menggunakan partisi ketika tidak ada penggunaan nyata untuk mereka. Jika Anda ingin menggunakannya sebagai batas administratif, Anda lebih baik memiliki LVM / ZFS atau semacam cara mudah untuk memperpanjangnya ..
Erik Johansson
Saya tidak terlalu suka menggunakan partisi juga ...
kopeklan
1

Apa gangguannya /var/lib? Jika itu seperti sistem saya, sebagian besar (katakanlah 500 MB) diambil oleh /var/lib/mysql?

Semua angka lainnya terlihat cukup normal dan masuk akal, begitu mengharukan /var/lib/mysqldan /var/wwwmerupakan satu-satunya solusi jangka panjang yang realistis.

Untuk menghapus file log lama, yang log Anda sedang diputar, misalnya apakah Anda memiliki /var/log/messages, /var/log/messages.1, /var/log/messages.2.gz, dll, atau mungkin /var/log/messages-20101221, /var/log/messages-20101220.gz, dll?

Cara yang jelas untuk menghapusnya adalah berdasarkan usia, misalnya

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

Juga, periksa apakah pengaturan logrotate Anda /etc/logrotate.confsesuai dengan yang Anda inginkan. Saya katakan Anda tidak boleh mengubahnya, karena itu bukan masalah utama Anda, tetapi mungkin Anda hanya ingin menyimpan satu minggu log, dalam hal ini coba sesuatu seperti ini:

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

Lalu ada file untuk setiap layanan, misalnya syslog, mysql, apache, dll untuk mengkonfigurasi rotasi log untuk masing-masing layanan tersebut. Pada sistem Debian dan Red Hat, yang seharusnya sudah diatur untuk Anda.

Jika Anda belum memiliki logrotate, maka itu sedikit lebih sulit. Saya akan melihat menggunakan grep atau tail untuk menyimpan entri baru kemudian menghapus file dan me-restart syslogd (misalnya service syslogd restartatau pkill -HUP syslogd.

Akhirnya, naskah yang saya tulis untuk situasi ini adalah 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
sumber