Общая информация
Со временем, число файлов и директорий на сервере неуклонно растет.
В ОС Linux за файл считается практически любой объект, будь то обычный файл или папка. Каждому такому объекту ставится в соответствии номер i-node. И чем больше будет создано файлов и директорий, тем больше i-node будет занято.
Узнать ограничение i-node на каждом тарифном плане.
Только для VPS на OpenVZ
Ограничение по i-node учитывается только для тарифных планов VPS на OpenVZ.
Это тарифные планы VPS-X и SSD-VPS-X.
Как узнать текущий процент занятых i-node?
Подключитесь к серверу по SSH и введите команду:
df -i
Вывод будет примерно таким:
-bash-4.1# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/simfs 420000 43870 376130 11% /
none 6164127 158 6163969 1% /dev
Колонка IUse% показывает, что занято только 11% i-node.
При 100% занятых объектов файловой системы i-node сервер не сможет функционировать. При запросе к сайту, попытке зайти в панель управления будет выдаваться ошибка. Чтобы этого избежать, необходимо своевременно чистить ваш сервер от лишних файлов.
Чем заняты i-node?
Наиболее распространенные случаи:
Большая почтовая очередь
Чаще всего проблема актуальна при несанкционированных рассылках писем, т.е. сервер заражен вирусами и с него рассылается спам.
Просмотреть количество сообщений в очереди можно при помощи команды:
## Для Postfix:
postqueue -p| wc -l
## Для Exim:
exim -bpc
## Для Sendmail:
mailq | wc -l
Как очистить иноды на хостинге?
Очистить очередь можно командами:
## Для Postfix:
postsuper -d ALL
## Для Exim:
exipick -zi | xargs exim -Mrm # (очистит все замороженные сообщения)
exipick -i | xargs exim -Mrm # (очистит вообще все сообщения из очереди)
## Для Sendmail:
find /var/spool/mqueue -type f -exec rm -f {} \;
Все команды вводятся по SSH.
Множество файлов сессий
Следующие команды покажут число файлов сессий:
ls -R /var/www/*/data/mod-tmp | wc -l
ls -R /var/www/*/data/bin-tmp | wc -l
Эти команды удалят все файлы сессий:
find /var/www/*/data/mod-tmp -name "sess_*" -type f -exec rm {} \;
find /var/www/*/data/bin-tmp -name "sess_*" -type f -exec rm {} \;
Команды вводятся по SSH. Время выполнение команд может быть большим (из-за большого количества удаляемых файлов).
Создать CRON-задание на автоматическое удаление файлов сессий
Инструкция подходит для VPS с панелью управления ispmanager.
- 1 Войдите в панель управления ispmanager под пользователем root;
-
2
Перейдите в раздел Планировщик CRON и нажмите Создать задание:
-
3
Добавьте следующие задания с периодом выполнения раз в сутки:
find /var/www/*/data/mod-tmp/ -name "sess_*" -exec rm {} \; find /var/www/*/data/bin-tmp/ -name "sess_*" -exec rm {} \;
Кэш сайтов
Особенно актуально для CMS Bitrix, рекомендуем периодически очищать директорию /bitrix/cache/. Также проверяйте размер кэша остальных CMS.
Поиск файлов, занимающих больше всего i-node
Авторизуйтесь на сервера по SSH и введите команду:
ls -d1 ./* | while read i; do echo -en "$i\t"; find "$i" -name "*" | wc -l; done;
Команда покажет, в какой директории находится больше всего файлов.
Пример вывода:
-bash-4.1# ls -d1 /* | while read i; do echo -en "$i\t"; find "$i" -name "*" | wc -l; done;
/aquota.group 1
/aquota.user 1
/bin 104
/boot 15
/dev 159
/etc 1186
/home 1
/lib 5618
/lib64 334
/media 1
/mnt 1
/opt 23744
/proc 22216
/root 516
/sbin 142
/selinux 1
/srv 1
/sys 401
/tmp 4
/usr 35401
/var 294395
Видно, что больше всего файлов содержит в себе каталог /var.
Теперь перейдем в этот каталог при помощи команды:
cd *имя_директории*
Затем повторим первую команду:
-bash-4.1# cd /var/ # переходим в каталог /var
-bash-4.1# pwd # проверяем, что мы перешли корректно
/var # все верно, мы в каталоге /var. Идем дальше
-bash-4.1# ls -d1 /* | while read i; do echo -en "$i\t"; find "$i" -name "*" | wc -l; done;
В результате вы увидите, какие каталоги внутри /var содержат больше всего файлов. И так, шаг за шагом, вы определите директорию, в которой расположено множество файлов. На этом этапе можно принимать решение об очистке директории. Однако будьте осторожны, не удалите системные файлы.
Что еще может помочь?
- повышение тарифного плана: чем выше тариф, тем больше i-node доступно;
- подключение дополнительного дискового пространства: на каждый дополнительно подключенный ГБ количество i-node увеличивается на 10000.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊