Question

How to properly delete PHP sessions files to free inodes?

Posted June 25, 2016 17.8k views
UbuntuPHPLEMP

So this morning, I noticed I was having trouble using tab-completion while logged into ssh. I received a cannot create temp file for here-document: No space left on device message whenever I attempted a tab-completion.

Confused by the “no space left” message when I was using less than 30% of the disk space on the device, I dug into it a little deeper and realized the lack of available “inodes” was actually the problem.

I managed to clear enough files manually to run the following command: sudo find / -xdev -printf '%h\0' | sort -z | uniq -cz | sort -nrzk 1 | tr '\0' '\n' | head -n 50

That revealed the biggest culprit to be PHP and HHVM session files (FWIW, I don’t use HHVM anymore).

1261734 /var/lib/php5
543376 /var/lib/hhvm/sessions

I’d love to clear these out (especially the HHVM ones) but am not sure of the proper way to do it.

Any advice would be much appreciated.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
2 answers

This one solves my problem on my php7
A quick command to delete all sess* files on /var/lib/php/sessions is this:
find /var/lib/php/sessions -type f -cmin +24 -name “sess
*” -exec rm -f {} \;
Reference:
http://www.queryadmin.com/1634/bash-script-delete-php-session-files-free-inodes/

For php5 you can try this one:
https://pim.famnit.upr.si/wordpress/index.php/2011/04/20/running-out-of-inodes-no-space-left-on-device-php-not-cleaning-sessions/

On Ubuntu there should be a cron job configured to delete unused session files on a regular basis located in /etc/cron/php5.

Running out of inodes just means that you have too many files. If you are no longer using hhvm you can simply delete those files (or uninstall unneeded software) to free them up.

Submit an Answer