Home >System Tutorial >LINUX >(star) How to prevent large files from being directly rm'ed?
The public account focuses on "The Wonderful World of Linux"
Set as "star" linux delete folderWinning the bid for linux, I will take you to play with Linux every night!
In the daily operation and maintenance process, we often need to solve the c drive space problem and delete the folder in Linux. When receiving the alarm, we will look for these large files as soon as possible. Usually, for example, Centos, the large file may be /var/log. /messages.
But sometimes, large files cannot be found no matter what. When searching through du, the calculated size does not correspond to the occupied space displayed by df.
If you check that the inode is not full through df-i, it is very likely that a large file has been directly rm'd, and a process has always opened the file.
In these cases, because the process does not exit, the space occupied by the file will not be released; the c drive space cannot be truly released until the process exits.
How to find out which process opened the file
On Linux, because the process is still alive, you can view the fd opened by all processes. If the file has been deleted, it will be displayed (deleted) when viewing.
Examples are as follows:
<span></span><code style="padding: 16px;color: #ddd;font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;font-size: 12px;padding-top: 15px;background: #272822;border-radius: 5px">$ sudo find /proc/*/fd -ls | grep <span style="color: #a6e22e;line-height: 26px">'(deleted)'</span><br> 388609 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/4 -> /tmp/ibpX85Vd (deleted)<br> 388610 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/5 -> /tmp/ibCwAgAj (deleted)<br> 388611 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/6 -> /tmp/ibRZ5rep (deleted)<br> 388612 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/7 -> /tmp/ibBuNEzA (deleted)<br> 388616 0 lrwx------ 1 zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/11 -> /tmp/ibG68kpG (deleted)<br></code>
How to avoid these situations
Don’t delete the file directlylinux delete folder, but truncate the file to free up the c drive space.
One method is:
<span></span><code style="padding: 16px;color: #ddd;font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;font-size: 12px;padding-top: 15px;background: #272822;border-radius: 5px">cat /dev/null > <span style="color: #a6e22e;line-height: 26px">${filename}</span><br></code>
Or (new get!)
<span></span><code style="padding: 16px;color: #ddd;font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;font-size: 12px;padding-top: 15px;background: #272822;border-radius: 5px">: > <span style="color: #a6e22e;line-height: 26px">${filename}</span><br></code>
In this way, space can be quickly released.
Reference Document
Findandremovelargefilesthatareopenbuthavebeendeleted
The above is the detailed content of (star) How to prevent large files from being directly rm'ed?. For more information, please follow other related articles on the PHP Chinese website!