Disk quota exceeded / Превышена дисковая квота / Не удаётся записать файл
#Что значит ошибка
Квота — это лимит места (в МБ/ГБ) и числа файлов (inode) для аккаунта. Когда место или inode заканчиваются, сайт не может писать кеш, загружать файлы и принимать почту; WordPress и Bitrix выводят ошибки, письма отклоняются. Причины: накопившиеся логи, бэкапы в домашней папке, кеш, почта, error_log, дубликаты, большие загрузки, переполнение inode мелкими файлами (сессии, кеш).
#Что чаще всего занимает место
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Бэкапы на сервереАрхивы сайта и БД. | Крупные .tar.gz, .zip. | Скачайте и удалите. |
| Логиerror_log, access. | Файлы по сотням МБ. | Обнулите, настройте ротацию. |
| Кеш приложенияWordPress, Bitrix. | Сотни тысяч мелких файлов. | Очистите кеш. |
| Почтовые ящикиСпам, вложения. | Папка mail огромна. | Очистите ящики. |
| Сессии PHPtmp. | Много файлов sess_*. | Удалите старые. |
| Дубликаты и распакованные архивыОстатки. | Копии сайта в подкаталогах. | Удалите. |
#Порядок
- Узнайте объём и лимит квоты в панелиОткройте в панели управления тарифом раздел «Диск», «Статистика» или «Квоты» и отдельно запишите занятое место, предел тарифа и число используемых inode. Если SSH доступен, выполните
quota -s,df -h ~иdf -i ~: эти команды показывают разные ограничения и не изменяют данные. При расхождении с панелью уточните квоту пользователя у хостера, а не удаляйте файлы наугад. - Найдите самые большие каталоги и файлыПодключитесь к серверу по SSH под учётной записью сайта, выполните
cd ~, затемdu -h --max-depth=1 . 2>/dev/null | sort -hr | head -20в Linux. В списке найдите самые крупные каталоги и углубляйтесь в них той же командой; для поиска файлов используйтеfind . -type f -size +100M -print. Не удаляйте найденное автоматически: размер файла не доказывает, что он ненужный. - Найдите каталоги с наибольшим числом файловЕсли диска хватает, но квота файлов исчерпана, запустите из домашнего каталога
for d in ./*/; do printf "%s " "$d"; find "$d" -type f 2>/dev/null | wc -l; done | sort -k2,2nr | head. Найдите папку с тысячами мелких файлов: часто это сеансы, кэш или миниатюры. Проверьте документацию приложения, как очищать эту папку, и повторите подсчёт inode после удаления. - Удалите ненужные архивы и бэкапы, старые логиДо удаления откройте папки с резервными копиями и журналами в файловом менеджере или через SSH (
ls -lh) и проверьте даты, назначение и наличие копии вне сервера. Скачайте нужные архивы на компьютер и убедитесь, что они открываются. Удаляйте только проверенные старые архивы. Активные журналы сначала ротируйте штатным способом; массовое обнуление всехerror_logуничтожит диагностику и может не освободить занятое место. - Очистите кеш приложенияЕсли установлен WordPress, войдите в его панель и откройте настройки конкретного плагина кэширования → «Очистить»/«Purge cache»; в Битрикс примените штатную очистку управляемого кэша из административной панели. Сначала убедитесь, что папка действительно относится к кэшу, а не к оригиналам изображений. После очистки обновите пару страниц и повторно проверьте квоту.
- Очистите корзину почты и спамВойдите в веб-почту каждого ящика, откройте «Спам» и «Корзина», выделите ненужные письма и очистите папки. Проверьте в статистике хостинга, входит ли почта в общий объём. Если уменьшения нет, уточните задержку пересчёта в панели и очистку удалённых сообщений у провайдера; не удаляйте каталоги Maildir через файловый менеджер.
- Перенесите бэкапы вне хостингаОткройте найденные резервные копии в панели и скачайте одну пригодную полную копию файлов и базы на отдельное хранилище. Если поддерживается встроенное копирование в облако, настройте его и проведите пробное восстановление на тестовой площадке. Только после проверки новой копии удаляйте лишние серверные архивы, не трогая используемые хостером автоматические снимки.
- Если места не хватает, увеличьте тарифЕсли расчистка не помогает, откройте условия тарифа и сравните отдельно лимиты диска и inode. Выберите достаточный объём с запасом на журналы и временные файлы, согласуйте расширение с хостером. После изменения лимита проверьте запись нового тестового файла и создание файла в проблемном каталоге; если ошибка остаётся, передайте поддержке время и текст сообщения.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Отличия панелей
В ISPmanager квоту смотрят в «Пользователи» (поле «Дисковое пространство»), в HestiaCP/VestaCP — в «Пользователи» или v-list-user имя. В cPanel — в блоке «Статистика» справа или «Использование диска». Если лимит исчерпан из-за журналов почты или статистики, очистите их в разделе «Статистика» панели. Увеличить квоту можно в тарифе хостинга или обратившись в поддержку, если вы администратор VPS.
#Проверка квоты по панелям в командной строке
Если у вас VPS с панелью, квоту можно проверить командами панели. В HestiaCP: v-list-user имя json покажет DISK_QUOTA и U_DISK, а v-list-web-domains имя — занятое место по доменам. В VestaCP команды такие же с префиксом v-. В ISPmanager квота отображается в списке пользователей, а проверка системной квоты выполняется командой repquota -a, если на файловой системе включены квоты. Отдельно проверьте раздел /var/lib/mysql: база данных не входит в квоту файлов, но учитывается на VPS общим объёмом диска.
/usr/local/hestia/bin/v-list-user имя json/usr/local/vesta/bin/v-list-user имя jsonЕсли места не хватает на всём сервере (а не у одного аккаунта), проверьте df -h и очистите /var/log и /var/cache: команда journalctl --vacuum-size=200M ограничит размер журналов systemd.