mysqld не запускается, потому что дисковое пространство заполнено:
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
работает 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 *
в /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
в /dev/sda5
, есть файлы сайта в /var/www
.
потому что это первый раз, я понятия не имею, какие файлы для удаления, кроме перемещения /var/www
в другой раздел
И еще, как правильно удалить файлы журналов, историю и т. Д. /dev/sda5
?
Что за срыв
/var/lib
? Если это похоже на мою систему, большая часть этого (скажем, 500 МБ) занята/var/lib/mysql
?Все остальные цифры выглядят вполне нормально и разумно, поэтому движущиеся
/var/lib/mysql
и/var/www
являются единственными реалистичными долгосрочными решениями.Для удаления старых файлов журналов, которые ваши журналы, вращаясь, например , у вас есть
/var/log/messages
,/var/log/messages.1
,/var/log/messages.2.gz
и т.д., или , может быть/var/log/messages-20101221
,/var/log/messages-20101220.gz
и т.д.?Очевидный способ удалить их по возрасту, например
Кроме того, убедитесь, что ваши настройки logrotate
/etc/logrotate.conf
соответствуют вашим требованиям. Я бы сказал, что вы не должны их менять, так как они не являются вашей основной проблемой, но, возможно, вы хотите хранить только журналы за неделю, в этом случае попробуйте что-то вроде этого:Затем существуют файлы для каждой службы, например, syslog, mysql, apache и т. Д., Для настройки ротации журналов для каждой из них. В системах Debian и Red Hat это уже должно быть настроено для вас.
Если у вас еще нет logrotate, то это немного сложнее. Я бы посмотрел на использование grep или tail, чтобы сохранить последние записи, затем удалить файл и перезапустить syslogd (например,
service syslogd restart
илиpkill -HUP syslogd
.Наконец, сценарий, который я написал только для этой ситуации
diskuse
.источник