Экспресс очистка сервера с целью освобождения дискового пространства

Опасно разводить беспорядок на сервере, потому будучи брошенным на произвол судьбы он рано или поздно съест всё свободное место на диске. Сервер с отсутствующим свободным местом может вас даже по ssh в гости не пустить. В этом я недавно убедился. А потому предлагаю краткий набор рекомендаций для тех, кто как и я, бросает серверы без присмотра на длительные сроки, а потом удивляется: «Это что ж с ним случилось?».

Во-первых, если ваш сервер боевой (т.е. там висят какие-то сайты или какая-то почта или сервер выполняет регулярно ещё какую-то полезную работу), то настройте ротацию логов (пример для логов веб-сервера, но таким же способом можно ротировать любые логи). Логи — верный способ убить пространство на сервере с маленьким диском.

Во-вторых, удалите кеш пакетов (особенно, если вы постоянно чего-то ставите, удаляете, снова устанавливаете — это уже скорее для тестового сервера проблема). Поможет простая команда:
sudo apt-get clean

В-третьих, посмотрите как обстоят дела с локальной почтой:
sudo ls -al /var/mail

Я, например, поймал несколько сотен лишних мегабайт в виде сообщений в ящик root`а о разных отработавших задачах планировщика. В зависимости от вашего почтового сервиса, почта может копиться и в домашних каталогах пользователей. Пошарьте и там.

И, наконец, в-четвёртых, пошарьте руками по серверу с целью выявления самых тяжелых директорий. Начните так:
sudo du -sm /* | sort -nr

Получите отсортированный список, где в первом столбце будет размер в мегабайтах. Например, если окажется, что больше всех весит /var, то посмотрите, кто это там такой тяжелый:
sudo du -sm /var/* | sort -nr

И так далее. Главное, лишнего не удаляйте. Вообще, рекомендую перед любой чисткой всё или хотя бы то, что собрались удалять — бэкапить.

И ещё маленький хинт для тех, кто пока только начинает покорение Ubuntu и Linux`а. Если вам надо быстро очистить файл, не удаляя его (а, например, этот приём годен для очистки любых логов), то выручит такая команда:
sudo echo "" > /var/logauth.log

Вместо старого содержания в файл /var/logauth.log будет записана одна пустая строка (т.е. файл станет пустым абсолютно).

Как верно подсказали в комментариях, полностью очищать файл, делая его девстенно пустым, надо так:
sudo su
> /var/logauth.log

Или вот так:
sudo echo -n > /var/logauth.log

А если воспользоваться вариантом, который сначала предложил я (sudo echo "" > /var/logauth.log), то одна пустая строка (и один байт данных для соответствующего спецсимвола) в файле всё-таки будет.

»

Оцените статью
Про Ubuntu — блог о популярном СПО GNU/Linux-дистрибутиве Ubuntu (Убунту Линукс)