Как обнаружить большие файлы на своем сервере

Тем, кто содержит собственный веб/фтп/гейм/etc-сервер на *nix наверняка знакома проблема, когда что-то начинает работать «не так», и, долго копаясь в различных настройках, пытаясь выяснить причину столь странного поведения серверных приложений, мы обнаруживаем, что на сервере банально закончилось дисковое пространство.
Это значит — самое время навести порядок в вашей файловой системе, хотя бы путем удаления больших (ОГРОМНЫХ) и неиспользуемых файлов. Также очень сильно могут разрастаться логи (/var/log/messages, access.log и error.log апача и многие, многие другие). В общем, нужные файлы необходимо забэкапить на какой-нибудь другой носитель, а ненужные — просто удалить/очистить. При этом лог-файлы советую не удалять и снова воссоздавать (чтобы избежать проблем с правами доступа), а чистить их содержимое командой:
echo > /path/to/log-file

Так как же найти большие файлы в системе? Конечно, с помощью команды «find».

Для FreeBSD:
Переходим в директорию, относительно которой мы будем искать файлы. (для всей системы — «cd /»). Затем, чтобы например найти все файлы размером более 100МБ, нужно выполнить команду:

find . -type f -size +100M -exec ls -al {} \;

или
du /partition_or_directory_name | sort -rn | head

или
find / -size +500M -exec ls -l {} \;


Для Linux:
Команда выглядит следующим образом:
find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

(или, для разных дистрибутивов бывают вариации, например:)
find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
  • avatar
  • 0
comments powered by Disqus

0 комментариев

Оставить комментарий