网站首页 > linux / 正文
在linux运维中,磁盘满了是最经常遇到的情况。通常情况下面,我们会先通过find 命令找出大文件,比如下面的命令找出大于10g的文件。
find / -size +10G
找出后我们可以通过echo 命令清空这个文件,有时间直接删除这个文件,但删除后df 发现磁盘还是100%,资源并没有释放。
那是因为虽然文件被删除,但如果还有程序打开(占用)这个文件,真实文件内容并没有释放。
可以通过lsof 命令查看处于删除状态的文件句柄。
$ lsof | egrep "deleted|COMMAND"
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
ora 25575 8194 oracle oracle 33 REG 65,65 4294983680 31014933 /oradata/DATAPRE/file.dbf (deleted)
就可以发现PID为 25575 的进程正在打开这个文件,并且连接已经失效了。
$ file /proc/25575/fd/33
/proc/25575/fd/33: broken symbolic link to `/oradata/DATAPRE/file.dbf (deleted)'
此时有两种解决办法,方法一比较粗暴,直接kill 掉这个进程,但如果不能杀死进程的话,方法二比较优雅,清空这个fd的内容。
$ echo > /proc/25575/fd/33
Tags:linux磁盘满了
猜你喜欢
- 2024-11-26 VMware虚拟机中Linux系统磁盘空间扩容实战
- 2024-11-26 linux 排查磁盘问题的常用命令
- 2024-11-26 Linux 磁盘扩容(非LVM)方式
- 2024-11-26 Linux系统磁盘分区管理LVM概念及扩容操作
- 2024-11-26 linux系统磁盘空间使用情况
- 2024-11-26 k8s自动化运维十二-磁盘管理
- 2024-11-26 linux磁盘空间查看命令(du,df)剩余空间查看详解
- 2024-11-26 linux中crontab定时任务导致磁盘满和云监控未报警的的坑
- 2024-11-26 centos7 提示根目录系统文件已满,如何解决?
- 2024-11-26 Linux 查找占用磁盘IO读写很高的进程方法