Чистка системы FreeBSD

 

Многие наверно покупая недорогие 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 /

 

Как видим больше всего у нас занимают: tmpusrvar.

 

Чистим /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, который отвечает за ротацию логов. Но это уже отдельная тема следующего поста.