Рахуємо кількість файлів у підкаталогах на Linux

Командная строка Bash
Командная строка Bash

“Щось файли на сервер перестали завантажуватися, перевір, будь ласка” — каже замовник.

Панель керування сервером показує невтішну картину. Кількість файлів, які можна завантажити на поточний обліковий запис спільного хостингу, вичерпано:

Панель керування не надає інформації про те, що саме на сервері вичерпало весь доступний ліміт файлів.

Штатні засоби не дають чіткої картини. Але якщо є доступ до SSH на сервері, можна спробувати визначити найбільш “ненажерливу” папку через консоль.

Увага! Зазначені методи передбачають пофайловий перебір і можуть завантажити сервер. При великій кількості файлів час виконання може бути досить тривалим.

Простий метод порахувати кількість файлів у поточній папці

Цей метод підходить лише в тому випадку, якщо ви точно знаєте, де шукати:

find . -type f | wc -l

Два способи визначити кількість файлів у кожному підкаталозі

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

for f in *; do [ -d ./"$f" ] && find ./"$f" -exec echo \; | wc -l && echo $f; done

find . -maxdepth 1 -type d -print0 | xargs -0 -I {} sh -c 'echo $(find {} | wc -l) \\t {}' | sort -rn | less

Для виходу після завершення натисніть q.

Висновок

З великою ймовірністю ліміт файлів було вичерпано через кеш CMS на кшталт WordPress або Magento, або ж через їхні резервні копії. Результат після очищення кешу WordPress у моєму випадку був очікуваним.

Від Тетяна

IT-спеціалістка, викладачка, фанатка сучасних технологій. З 2009 року занурена у світ цифрового дизайну, веб-розробки та адміністрування систем. Ділюсь знаннями про веб-технології, IT-інструменти та корисні лайфхаки, викладаю студентам, навчаюсь сама.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *