При работе с VPS можно столкнуться с проблемой нехватки места на сервере. Перед тем как приступить к её решению, проверьте, сколько дискового пространства файловой системы занято. Это можно сделать с помощью команды df -h*
. В выводе вы увидите примерно следующее:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 45G 10G 33G 23% /
Чтобы точно определить, сколько дискового пространства занято, добавьте 4-5% к данным в графе Used. Это пространство выделено под технические области файловой системы: журналы, структуры директорий, данные о размещении файлов на диске и другие. В примере занято 10 ГБ. К ним нужно добавить ещё 0.4-0.5 ГБ.
Ниже рассмотрим распространенные причины заполнения дискового пространства сервера и способы решения данной проблемы.
Не происходит ротация логов
Как следствие, файлы журналов разрастаются до больших размеров. Для устранения проблемы:
-
1
Очистите содержимое файлов в каталоге /var/log/.
Важно
Нужно очистить файлы, но не удалять их. Удаление файлов приведёт к проблемам в работе сервера.
Очистите содержимое файлов в каталоге /var/log/. Например, это можно сделать по SSH командой echo:
echo > /var/log/nginx/access.log
-
2
Чтобы настроить логи, перейдите в раздел Сайты, кликните дважды по нужному домену и найдите вкладку Дополнительные настройки. Выставьте параметры в соответствии со скриншотом:
Накопились файлы сессий пользователей
Чтобы файлы сессий не занимали место, настройте их автоматическое удаление:
- 1 Войдите в панель управления ispmanager под пользователем root.
-
2
Если у вас ispmanager 4, перейдите в раздел Инструменты — Планировщик (cron).
Если ispmanager 5, перейдите в раздел Система — Планировщик.
Если ispmanager 6, перейдите в раздел Планировщик CRON.
Добавьте следующие два задания:
find /var/www/*/data/mod-tmp/ -name "sess_*" -exec rm {} \; find /var/www/*/data/bin-tmp/ -name "sess_*" -exec rm {} \;
с периодом выполнения раз в сутки:
В ispmanager 4
В ispmanager 5
В ispmanager 6
Эти задания будут удалять файлы сессий из каталогов mod-tmp и bin-tmp всех пользователей.
Другие программы не очищают свои временные файлы в каталоге /tmp
Для решения этой проблемы проанализируйте содержимое каталога /tmp. Возможно, другие программы не удаляют свои временные данные и занимают дисковое пространство.
Как узнать, какие файлы занимают больше всего места на сервере
Узнать объём директорий и файлов в корне сервера можно при помощи команды du -sch /*
. Если начать с корня сервера и проверять те директории, которые занимают больший объем, то в итоге можно найти самые большие файлы. Вместо / можно указать любую другую директорию, чтобы узнать информацию о её содержимом. Пример:
Подключитесь к серверу по SSH и введите следующую команду:
du -sch /path/*
Вместо /path/ укажите путь к директории, файлы и папки которой вы хотите проанализировать. В результатах вывода вы увидите примерно следующее:
-bash-4.1# du -sch /var/log/nginx/*
657M /var/log/nginx/access.log
4.0K /var/log/nginx/access.log-20130929.gz
4.0K /var/log/nginx/access.log-20130930.gz
8.0K /var/log/nginx/access.log-20131001
120M /var/log/nginx/error.log
4.0K /var/log/nginx/error.log-20130929.gz
4.0K /var/log/nginx/error.log-20130930
24K total
В примере больше всего места в директории /var/log/nginx/ занимает файл access.log (полный путь /var/log/nginx/access.log). Чтобы удалить часть информации из файла, используйте команду:
echo > /var/log/nginx/access.log
В результате всё содержимое в файле будет заменено пустой строкой.
Обратите внимание
Если на сервере установлена система мониторинга atop, проверьте директорию /var/log/atop/ командой:
du -sch /var/log/atop/*
В ispmanager частой причиной нехватки дискового пространства является директория /var/www/httpd-logs/, в которой хранятся логи ошибок и запросов к сайтам. Проверьте размер командой:
du -sch /var/www/httpd-logs/*
Совет
Если проверка показала, что все данные необходимы для корректной работы сайта и сервера, вы можете подключить дополнительное дисковое пространство или повысить тарифный план услуги VPS-сервера.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊