• linux 硬盘满了如何处理(转)


    linux 硬盘满了如何处理

    事件源于在服务器运行一个脚本程序…

    好好的脚本突然报错,还以为脚本出现问题了。细看报错原因(具体报错信息已经忘记了),是没有可用空间。从没遇见过这个情况,怎么办呢?

    一、确定是不是真的是磁盘空间不足

    查看磁盘信息

    输入命令:df -lh

    很明显:Filesystem下的挂载点 /dev/xvda1 下的40G容量已经耗尽。

    既然问题已经确定了,接下来就是处理了。

    处理方法也很简单,就是删文件。

    问:删除什么文件?

    答:删除占用磁盘空间大,但又无用的文件。

    问:什么是无用的文件?

    答:如果对系统不熟悉的话,日志可能是你第一的下手目标。

    二、如何定位最大文件目录

    输入命令: cd / 进入根目录。

    输入命令:

    du -h --max-depth=1 

    寻找当前目录,哪个文件夹占用空间最大

    以上两个命令之后,可以看到 /usr 此路径占用较大磁盘空间,占用了21G。眼尖的同学可能看到了最后一项显示24G,它表示当前目录所有文件占用磁盘空间总和容量是24G。

    如法炮制,几番判断后,定位到tomcat的日志文件。

    由上图可以判断,17G文件在当前目录(tomcat日志目录)文件中。

    三、如何定位最大文件

    输入命令:

    ls -lhS


    将文件以从大到小顺序展现

    最终定位文件为:catalina.out 这个日志文件。

    四、确认文件未被占用

    删除文件谁都会:rm –f catalina.out 但是,最好确认下是否要下载下来让开发人员分析日志。

    辛苦一阵找到文件,删除了很开心,输入命令:df –lh 发现磁盘空间仍是满的状态。跟图一完全没有区别。难道说是需要重启系统吗?linux会这么不友好么?

    谷歌一下,发现了这么一段话:

    在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

    输入命令:/usr/sbin/lsof|grep deleted 确认删除文件是否被占用

    确实被占用。根据第二列提供的pid,输入命令:kill -9 13117 杀掉进程。

    再次输入命令:

    df -lh

    如图,磁盘空间被释放了。问题顺利处理了。

  • 相关阅读:
    宝宝咳嗽
    如何查看 oracle 官方文档
    00 序 建立环境
    09 变量重游
    【TYVJ】1359
    【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)
    【wikioi】1904 最小路径覆盖问题(最大流+坑人的题+最小路径覆盖)
    【wikioi】1034 家园(最大流+特殊的技巧)
    【BZOJ】1040: [ZJOI2008]骑士(环套树dp)
    【POJ】2234 Matches Game(博弈论)
  • 原文地址:https://www.cnblogs.com/huanjoyous/p/10601356.html
Copyright © 2020-2023  润新知