Многие наверно покупая недорогие VPS с небольшим дисковым пространством, рано или поздно, сталкиваются с проблемой нехватки места на диске. Попробую описать первые действия, которые позволят высвободить немного места на сервере.
Первым делом ищем в системе, что у нас занимает много места
freebsd# du -h -d 1 / 2,0k /.snap 1,0M /bin 181M /boot 2,5k /dev 1,9M /etc 7,4M /lib 286k /libexec 2,0k /media 2,0k /mnt 2,0k /proc 4,6M /rescue 64k /root 4,4M /sbin 2,1G /tmp 5,5G /usr 8,8G /var 16G /
Как видим больше всего у нас занимают: tmp, usr, var.
Чистим /tmp
ВНИМАНИЕ !!! При неаккуратной чистке этой папки могут отвалиться текущие рабочие процессы. К примеру: если удалите mysql.sock или php-fpm.sock, то до перезапуска перестанут работать mysql и php-fpm.
Смотрим, что объемного есть в tmp
freebsd# du -h -d 1 /tmp/ 2,0k /tmp/.X11-unix 2,0k /tmp/.XIM-unix 2,0k /tmp/.ICE-unix 2,0k /tmp/.font-unix 2,1G /tmp/mc-root 2,1G /tmp/
В каталоге /tmp/mc-root находятся временные файлы midnight commander для пользователя root. Саму папку лучше оставить, а вот её содержимое можно смело удалять. Причем если будете удалять из MC, то большая вероятность, что он перестанет работать до следущего перезапуска.
Удаляем для пользователя от которого работаем:
rm -Rf /tmp/mc-`whoami`
Удаляем временные файлы всех пользователей
rm -Rf /tmp/mc-*
Подводя итог, советую автоматически чистить tmp при каждой загрузки системы.
Редактируем файл rc.conf
vi /etc/rc.conf
и добавляем в конце строку
clear_tmp_enable="YES"
Кроме папки /tmp, этой опцией мы также будем чистить /var/tmp
Чистим /usr
Смотрим что у нас занимает много места в /usr
freebsd# du -h -d 1 /usr/ 64M /usr/bin 2,0k /usr/games 18M /usr/include 48M /usr/lib 6,0k /usr/lib32 118k /usr/libdata 13M /usr/libexec 4,5G /usr/local 2,0k /usr/obj 27M /usr/sbin 39M /usr/share 2,0k /usr/src 635M /usr/ports 5,4G /usr/
/usr/local занимает 4,5G, смотрим что в ней
freebsd# du -h -d 1 /usr/local/ 60M /usr/local/bin 1,2M /usr/local/etc 21M /usr/local/include 4,6M /usr/local/info 200M /usr/local/lib 166k /usr/local/libdata 7,5M /usr/local/libexec 9M /usr/local/man 3,9M /usr/local/sbin 60M /usr/local/share 4,2G /usr/local/www 4,5G /usr/local/
/usr/local/www — директория сайтов, отдельная песня и чистить её будем в другой раз )
Многие при установки пакетов из портов забываю выполнять clean. Все проблемы решит distclean — очистить все созданные при компиляции файлы и все вспомогательные файлы созданные утилитой ./configure.
cd /usr/ports; make distclean
Советую набраться терпения, так как процесс долгий !
Чистим /var
Той же командой находим большие по объёму папки
du -h -d 1 /var/
Получаем, что самые объемные:
/var/db/mysql — тут хранятся базы сайтов, поэтому советую быть очень аккуратным. Как видим больше всего занимают бинарные лог файлы для организации репликации СУБД.
Чтобы отключить опцию по созданию файлов, необходимо в конфиге /var/db/mysql/my.cnf закоментировать параметр log-bin=mysql-bin
Чтобы удалить уже созданные файлы:
rm -R /var/db/mysql/mysql-bin.*
/var/log — различные файлы системных журналов, их собственно и будем чистить.
Удаляем сротированные логи различных сервисов
rm -R /var/log/*.bz2
В /var/log удалять файлы крайне не рекомендую! Так как syslog файлы создавать не умеет и может только писать в них. Поэтому если вы не уверены лучше обнулите лог-файл:
cp /dev/null имя.log
или
echo > имя.log
Например, для удаления почты пользователя root:
cp /dev/null /var/mail/root
В FreeBSD также есть newsyslog, который отвечает за ротацию логов. Но это уже отдельная тема следующего поста.
дабы не срало почтой руту мона в /etc/aliases добавить
root: /dev/null
либо того на кого надо слать мыло 😉
du -h -d 1 /var/* аналог du -shc /var/*
на линухах нету флага -d но -shc работает везде 😉
Отличная статья, спасибо автору :-).
Все никак руки не доходили привести в порядок всё :-).