6.4.6 Як визначати скільки місця чи inode зайнято на сервері

Банер

Дисковий простір є критично важливим ресурсом для будь-якого сервера. Він визначає, скільки даних може зберігати та обробляти Ваша система. Ефективне керування дисковим простором є ключовим для забезпечення безперебійної роботи сервера.

У Linux-системах дисковий простір розподіляється не лише за обсягом даних, але й за кількістю файлів. Кожен файл або директорія пов’язані з унікальним ідентифікатором, який називається inode (індексний дескриптор). inode містить метадані про файл, такі як права доступу, власник, розмір та розташування на диску.

Важливо відзначити: вичерпання дискового простору чи inode може мати серйозні наслідки для функціонування Вашого сервера, сайтів та пошти.

Це може призвести до наступних наслідків:
  1. Непрацездатність сайту та пошти: коли закінчується місце на диску, сайт може перестати працювати, оскільки неможливо записувати нові дані або логи.

  2. Проблеми з базами даних: бази даних можуть перестати оновлюватися або взагалі відмовити в роботі.

  3. Збої в роботі сервісів: системні сервіси можуть перестати функціонувати через неможливість записати логи або тимчасові файли.

  4. Неможливість резервного копіювання: якщо на диску немає вільного місця, створення резервних копій стає неможливим.

  5. Уповільнення роботи системи: навіть якщо система ще працює, нестача вільного місця може значно знизити її продуктивність. Або при спробах запису даних сервер бути зависати.

Регулярний моніторинг та своєчасне керування дисковим простором є критично важливими для забезпечення стабільної роботи Вашого сервера та сайтів.

Команди для аналізу дискового простору

Для користувачів, які мають доступ до панелі керування ISPManager, існує простий спосіб перевірки використання дискового простору без необхідності використання командного рядка. Але при цьому він меньше інформативний й не надасть Вам таку кількість інформації, яку Ви можете отримати при перевіркі через термінал SSH.

Детальну інструкцію щодо перевірки та керування дисковими квотами через панель ISPManager можна знайти в нашій статті.

Важливо: більшість з наведених команд потребують доступу рівня адміністратора root.

Перевірка зайнятого місця у відсотках

Для перевірки кількості зайнятого місця у відсотках, підключіться до сервера за допомогою SSH та виконайте наступну команду:

  1. df -h

Команда відображає загальний обсяг кожного розділу файлової системи, обсяг використаного і вільного місця, а також відсоток використаного простору. Вся інформація представлена в зручних для читання одиницях (KB, MB, GB), що дозволяє легко оцінити стан дискової системи.

Приклад виконання команди df -h
root@hostname ~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            956M     0  956M   0% /dev
tmpfs           198M  1.8M  196M   1% /run
/dev/vda1        40G   11G   29G  28% /
tmpfs           986M     0  986M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           986M     0  986M   0% /sys/fs/cgroup

Аналіз розміру директорій

Щоб побачити, скільки місця займають папки в кореневій директорії, використовуйте команду:

  1. du --si --max-depth=1

Ця команда показує розмір кожної піддиректорії від рівня доступу Вашого користувача. За потреби Ви можете додати символ / кінці команди, тим самим вся інформація по розміру буде виведене від кореневої папки сервера.

  1. du --si --max-depth=1 /

Додатково, Ви можете вказати шлях до необхідного каталога, якщо потрібно перевірити місце певного користувача чи сайту:

Перевірка розміру сайту
  1. du --si --max-depth=1 /var/www/user/data/www/example.com

При формуванні шляху потрібно вказувати логін Вашого користувача (user) та назву сайту (example.com). Шлях можна змінити, залишивши, наприклад, /var/www/user/data/, тим самим Ви дізнаєтесь скільки займає інформаціє саме на цьому користувачі.

Пошук найбільших файлів

Для пошуку 10 найбільших файлів у системі:

  1. find / -type f -printf '%s %p\n' | sort -nr | head -10

Очищення кешу пакетного менеджера

Для систем Debian/Ubuntu:

  1. sudo apt-get clean

Для систем CentOS/AlmaLinux/RockyLinux:

  1. sudo yum clean all

Видалення старих файлів журналів

Щоб видалити файли журналів, старші за 7 днів:

  1. find /var/log -type f -mtime +7 -name "*.log" -delete

Команди для перевірки inode

Перевірка використання inode

Для перевірки кількості зайнятих inode у відсотках, виконайте:

  1. df -i

Ця команда надає набагато більше інформації, ніж просто перевірка зайнятих inode. Вона відображає загальну кількість inode на файловій системі, кількість використаних та вільних inode, а також відсоток використаних. Це дозволяє отримати повне уявлення про стан файлової системи.

Приклад виконання команди df -i:
root@hostname ~ # df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev            244521    395  244126    1% /dev
tmpfs           252323    684  251639    1% /run
/dev/vda1      2621440 242234 2379206   10% /

Підрахунок inode в конкретній директорії

Для підрахунку загальної кількості inode у вказаній директорії та її піддиректоріях:

  1. find /var/www/user/data -type f | wc -l

Ви можете модифікувати цю команду, додавши наступні аргументи:

  • -user user - виведе кількість inode, що належать вказаному користувачу, в нашому приклад логін користувача username. Вам потрібно буде підставити свого користувача.
  • -group group - виведе кількість inode, що належать вказаній групі.

Наприклад:

  1. find /var/www/user/data -type f -user username | wc -l

Пошук директорій з найбільшою кількістю файлів

Щоб знайти директорії, які містять найбільшу кількість inode, використовуйте:

  1. find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n

Додатково: на основі отриманої інформації Ви можете вжити наступних заходів для оптимізації використання дискового простору.

  1. Видалення непотрібних файлів: регулярно очищуйте систему від тимчасових файлів, старих логів та невикористовуваних даних.

  2. Архівація старих даних: стискайте та переміщуйте рідко використовувані файли на окремі носії для звільнення місця на основному диску.

  3. Використання символічних посилань: створюйте символічні посилання замість дублювання файлів для економії як місця на диску, так і inode.

  4. Налаштування квот: встановіть обмеження на використання дискового простору для користувачів та груп, щоб запобігти надмірному споживанню ресурсів.