首页 > 系统相关 >linux删除文件后,但空间未释放解决办法

linux删除文件后,但空间未释放解决办法

时间:2022-10-25 11:47:07浏览次数:41  
标签:解决办法 删除 文件 占用 磁盘空间 fd linux 进程

linux系统下文件被删除之后,使用df命令查看,磁盘空间却没有被释放,怎么排查?

其实磁盘空间没有释放是有进程仍在占用被删除的文件,要想真正的删除,只需要停止或重启进程,释放进程对文件的占用即可。

但是如果这个程序很重要,不能被停止,该怎么处理呢?

在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink)。然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。   一种解决方法是kill掉相应的进程,或者停掉使用这个文件的应用,让os自动回收磁盘空间。这种方法就像后面面试官追问的那样,停掉或重启应用风险较大。那么还有什么方法能解决吗?   从更深一层次来看,当linux打开一个文件的时候,Linux内核会为每一个进程在/proc/ 『/proc/nnnn/fd/目录(nnnn为pid)』建立一个以其pid为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)。   当文件被删除后,从文件目录上已经看不到了,但是还可以使用lsof命令:lsof |grep deleted,查看到被删除的文件,及其占用该文件的进程

 

通过该进程,进入到对应的/proc/nnnn/fd/目录,仍然可以找到对应的被删除文件

  这里就是关键了,可以使用 echo "" > file_name 命令将被删除的文件清空,直接缓解磁盘空间被占用的问题,之后有更多时间来处理这个问题。   当然这个方法也可以用来恢复被误删除的文件数据(仅限于被删除文件还被进程占用没有被完全释放)。

标签:解决办法,删除,文件,占用,磁盘空间,fd,linux,进程
From: https://www.cnblogs.com/sx66/p/16824323.html

相关文章

  • Linux:使用ntpdate命令同步更新系统时间
    1、安装ntpdateyuminstallntpdate-y转者注:以Ubuntu为例的Debian系统安装命令如下apt-getinstallntpdate。ntpdate简单用法:#ntpdateip#ntpdatecn.pool.ntp......
  • BZOJ 3192([JLOI2013]删除物品-双堆转头并头队列)
    3192:[JLOI2013]删除物品TimeLimit: 10Sec  MemoryLimit: 128MBSubmit: 123  Solved: 77[​​Submit​​][​​Status​​][​​Discuss​​]Descr......
  • Linux 纯shell备份文件
    克隆项目并进入项目目录:gitclonehttps://github.91chi.fun/https://github.com/Pricetx/backup.git;cdbackup创建所需目录:mkdir-p/root/backups/temp/添加......
  • linux 清理java缓存,Linux手动释放缓存的方法
    Linux释放内存的命令:syncecho1>/proc/sys/vm/drop_cachesdrop_caches的值能够是0-3之间的数字,表明不一样的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和in......
  • linux如何使用umount命令强制卸载文件系统
    https://www.cnblogs.com/ss-33/p/13884639.htmlumount命令解挂文件系统。umount[-ahnrvV][-t《文件系统类型》][文件系统]umount可卸除目前挂在Linux目录中的文......
  • linux获取tick值
    #include<time.h>//返回自系统开机以来的毫秒数(tick)unsignedlongGetTickCount(){structtimespects;clock_gettime(CLOCK_MONOTONIC,&ts);re......
  • 【linux】两台服务器免密传输
    两台服务器免密传输参考:两台服务器免密传输A,B两台机子想免密传输如果没有做免密传输,每次都需要输入密码,就非常麻烦个人只做了A向B传输文件的操作,操作步骤如下:1、在A......
  • Linux下Mysql数据库名及表名区分大小写设置
    微信公众号:IT邦德在MySQL中,一个数据库会对应一个文件夹,数据库里的表会则以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写敏感。Linux......
  • Linux 中如何开启端口?
    Linux端口的开启Linux端口的开启一、firewall方式(centOS7.*)二、修改iptables方式(centOS6.*)一、firewall方式(​​centOS7.*​​)查看防火墙状态firewall-cmd-......
  • linux 关机方法
    虚拟机是虚拟技术的一种,很多用户会在虚拟机上边使用命令来进行自定义操作关机,这样方便快捷,能够有更多的时间处理别的事情,那么还有没有其他更容易操作的poweroff关机命令呢?......