ISPmanager, inode в Linux и заканчивающееся место
Сегодня столкнулся с проблемой, что при установке пакета, apt стал падать с ошибкой о нехватке места на диске.
root@site:~# apt install htop Чтение списков пакетов… Ошибка! E: Could not create temporary file for /var/cache/apt/srcpkgcache.bin - mkstemp (28: На устройстве не осталось свободного места) E: Списки пакетов или файл состояния не могут быть открыты или прочитаны.
Команда df -h при этом показывала, что место-то есть и его хватает:
root@site:~# df -h Файловая система Размер Использовано Дост Использовано% Cмонтировано в udev 992M 0 992M 0% /dev tmpfs 201M 5,5M 195M 3% /run /dev/vda1 20G 9,9G 9,0G 53% / tmpfs 1003M 0 1003M 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 1003M 0 1003M 0% /sys/fs/cgroup tmpfs 1003M 0 1003M 0% /tmp tmpfs 1003M 8,0K 1003M 1% /var/spool/exim4 tmpfs 201M 0 201M 0% /run/user/0
И как оказалось в linux есть понятие «инодов» (inode). Файл 10гб и 1мб занимают одну иноду. Их занятое количество можно померить с помощью df -i:
root@site:~# df -i Файловая система Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в udev 253777 306 253471 1% /dev tmpfs 256551 418 256133 1% /run /dev/vda1 1280000 1267580 12420 100% / tmpfs 256551 1 256550 1% /dev/shm tmpfs 256551 3 256548 1% /run/lock tmpfs 256551 15 256536 1% /sys/fs/cgroup tmpfs 256551 15 256536 1% /tmp tmpfs 500 1 499 1% /var/spool/exim4 tmpfs 256551 11 256540 1% /run/user/0
Тут видно, что что в разделе /dev/vda1 они под завязку.
После недолгих раскопок оказалось, что ISPmanager никак не чистит php-сессии. Их стало очень дохера и иноды закончились.
Решается просто:
/usr/bin/find /var/www/site/data/mod-tmp -mtime +10 -exec rm -rf {} \; >/dev/null 2>&1
Так мы удалим все сессии старше 10 дней. Так же эту команду надо добавить в крон, чтобы избежать переполнения инод.
Кстати, сервер у меня в Айхоре
1 комментарий
а еще надо сделать не забыть rm -rf /usr/local/mgr5/