Как обнаружить большие файлы на своем сервере
Тем, кто содержит собственный веб/фтп/гейм/etc-сервер на *nix наверняка знакома проблема, когда что-то начинает работать «не так», и, долго копаясь в различных настройках, пытаясь выяснить причину столь странного поведения серверных приложений, мы обнаруживаем, что на сервере банально закончилось дисковое пространство.
Это значит — самое время навести порядок в вашей файловой системе, хотя бы путем удаления больших (ОГРОМНЫХ) и неиспользуемых файлов. Также очень сильно могут разрастаться логи (/var/log/messages, access.log и error.log апача и многие, многие другие). В общем, нужные файлы необходимо забэкапить на какой-нибудь другой носитель, а ненужные — просто удалить/очистить. При этом лог-файлы советую не удалять и снова воссоздавать (чтобы избежать проблем с правами доступа), а чистить их содержимое командой:
Так как же найти большие файлы в системе? Конечно, с помощью команды «find».
Для FreeBSD:
Переходим в директорию, относительно которой мы будем искать файлы. (для всей системы — «cd /»). Затем, чтобы например найти все файлы размером более 100МБ, нужно выполнить команду:
или
или
Для Linux:
Команда выглядит следующим образом:
(или, для разных дистрибутивов бывают вариации, например:)
Это значит — самое время навести порядок в вашей файловой системе, хотя бы путем удаления больших (ОГРОМНЫХ) и неиспользуемых файлов. Также очень сильно могут разрастаться логи (/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 }'
0 комментариев