Сегодня столкнулся с проблемой, что при установке пакета, 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 дней. Так же эту команду надо добавить в крон, чтобы избежать переполнения инод.

Кстати, сервер у меня в Айхоре