Як вирішити проблему повного диска на сервері Linux?
Посібник із пошуку великих файлів, безпечного очищення журналів і звільнення місця на сервері.
Однією з найпоширеніших проблем на серверах Linux є повне заповнення диска. Коли диск заповнюється, веб-сайти не можуть записувати файли, служби баз даних можуть перестати працювати, ігрові сервери можуть не записувати журнали, а деякі служби можуть взагалі не запускатися.
Цю помилку зазвичай розпізнають за такими симптомами:
- Збій завантаження файлів на сервер
- Вимкнення або помилка служби бази даних
- На панелі з’являється помилка «На пристрої не залишилося місця».
- Ігровий сервер вимикається, оскільки не може увійти.
- На веб-сайтах трапляється 500 помилок або порожніх сторінок
1. Перевірка використання диска
Спочатку перевірте, який розділ диска на сервері заповнений.
df -h
тут особливо використання% розглядається площа. Якщо розділ становить 90% або вище, це означає, що ризик почався. Якщо він заповнений на 100%, служби не зможуть записувати файли.
2. Знайдіть папки, які займають найбільше місця
Коли диск заповнений, проблемою зазвичай є журнали, резервні копії або файли кешу, накопичені в одній папці. Перевірте великі папки, починаючи з кореневого каталогу.
du -h --max-depth=1 / 2>/dev/null | sort -h
Ця команда показує, скільки місця займають домашні каталоги. Зазвичай перевіряються такі каталоги:
- /var/log - Системні та сервісні журнали
- / додому - Файли користувачів і веб-сайтів
- / резервна копія - Старі резервні файли
- /tmp - Тимчасові файли
- /var/lib/mysql - Файли бази даних MySQL/MariaDB
3. Список великих файлів
Іноді один файл журналу може зрости до 10 ГБ або більше. Щоб знайти великі файли, ви можете скористатися цією командою:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/nullЦя команда показує список файлів розміром понад 500 Мб. Уважно вивчіть отримані файли. Особливо .log, .старий, .gz, .bak і старі файли резервних копій слід перевірити.
4. Безпечне очищення файлів журналу
Безпосереднє видалення файлу журналу запущеної служби іноді не дає очікуваного результату. Оскільки служба може продовжувати тримати файл відкритим. Тому найбезпечнішим способом очищення великих файлів журналу є очищення файлу.
truncate -s 0 /var/log/dosya_adi.log
приклад:
truncate -s 0 /var/log/syslog truncate -s 0 /var/log/messages truncate -s 0 /var/log/nginx/error.log
5. Очищення кешу пакетів
У системах на базі Ubuntu і Debian файли кешу пакетів можуть з часом займати місце на диску.
apt clean apt autoremove -y
У системах CentOS, AlmaLinux або Rocky Linux:
yum clean all dnf clean all
6. Перевірка старих резервних копій
Файли, які займають найбільше місця на хостингу та ігрових серверах, зазвичай є старими резервними копіями. Особливо, якщо є система автоматичного резервного копіювання, нові резервні копії можуть створюватися щодня, а старі резервні копії можуть не видалятися.
find /backup -type f -mtime +7 -name "*.tar.gz" -ls
Ця команда показує резервні копії, старіші за 7 днів. Щоб видалити, переконавшись:
find /backup -type f -mtime +7 -name "*.tar.gz" -delete
7. Запобігайте перезавантаженню за допомогою налаштування Logrotate
Навіть якщо диск очищено, якщо причину не усунути, та сама проблема виникне знову через кілька днів. Для цього необхідно перевірити конфігурацію logrotate.
nano /etc/logrotate.conf
Приклад простої логічної логіки:
/var/log/*.log {
daily
rotate 7
compress
missingok
notifempty
}Цей параметр щодня повертає файли журналів, зберігає їх протягом 7 днів і стискає старі журнали.
Поширені помилки
- Видалення системних файлів, не знаючи, який це файл
- Видалення запущеного файлу журналу без перезапуску служби
- Зберігання старих резервних копій необмежений період часу
- Налаштування logrotate взагалі не перевіряються
- Не втручайтесь, поки диск не заповниться на 100%.
FAQ
Чому сервер видає помилку, коли диск заповнений?
Оскільки служби не можуть писати журнали, кеші, тимчасові файли чи бази даних. Служби можуть вимкнутися, коли операція запису не вдається.
Чи краще видалити або очистити файл журналу?
Замість повного видалення файлу журналу в запущених службах урізати Безпечніше спорожнити його за допомогою.
Я очистив диск, але місце не звільнилося, чому?
Видалений файл може залишатися відкритим запущеною службою. Можливо, буде потрібно перезапустити відповідну службу.
Рекомендації щодо продуктивності та безпеки
- Регулярно контролюйте використання диска.
- Зберігайте резервні копії на окремому диску або віддаленій області резервного копіювання.
- Не залишайте службу запущеною протягом тривалого часу без використання logrotate.
- Вживайте заходів обережності, коли рівень диска досягне 85%.
- Не залишайте журнали налагодження постійно відкритими на ігрових серверах.
Ця стаття спеціально підготовлена для PvPServer.