Freeing Space

Problem:

Is there a way to tell the kernel to give back the free disk space now? Like a write to something in /proc/ ?

This is probably an old and very repeated theme. After hitting 0 space only noticed when my editor couldn't save source code files I have open, which to my horror now have 0 byte size in the folder listing, I went on a deleting spree.

An hour later still no free space and cannot save my precious files opened in the editor, but notice the disparity below:

# sync; df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda4 13915072 13304004 0 100% /

Any suggestions? I shut off some services/processes but not sure how to check who might be actively eating disk space.


Solution:

sudo lsof | grep "(deleted)$" | sed -re 's/^\S+\s+(\S+)\s+\S+\s+([0-9]+).*/\1\/fd\/\2/' | while read file; do sudo bash -c ": > /proc/$file"; done

Explanation:
Grep lsof output to extract only deleted files. Sed extract the process id and filedescriptor id from each line, and create a string in format {pid}/fd/{fid}. While loop and output nothing to each file, setting them to empty.
  • 2 Пользователи нашли это полезным
Помог ли вам данный ответ?

Связанные статьи

10 Points Server Maintenance Checklist

Server Maintenance Checklist Just like any other computer, Linux servers need periodic...

How to silence a CRON and prevent it to send emails

Problem:Every time that a CRON is running, an email is sent.  Those emails aren't always...

Recommended firewall

What firewall do you recommend to secure my Linux server? MACI recommends the CSF (ConfigServer...

[EA4] New Relic APM on cPanel & CloudLinux CageFS

Many System Administrators tried to get PHP apps hosted on a cPanel server with CloudLinux and...