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

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

linux 硬盘满了如何处理(转)的更多相关文章

  1. linux 硬盘满了如何处理

    事件源于在服务器运行一个脚本程序… 好好的脚本突然报错,还以为脚本出现问题了.细看报错原因(具体报错信息已经忘记了),是没有可用空间.从没遇见过这个情况,怎么办呢? 一.确定是不是真的是磁盘空间不足 ...

  2. linux硬盘满了问题排查

    关键指令: df du find step1: 如果发现硬盘满了,首先要确定一下,使用df查看硬盘使用情况 df -h step2: 从第一步结果判定满了,确定哪些文件或哪个文件占了大头,使用du指令 ...

  3. linux 硬盘满了后,查看使用目录占用空间情况

    cd 切换到目录, du -ah --max-depth=1 查看当前目录下的 文件夹 占用情况

  4. Linux硬盘满了,系统速度贼慢,居然是Jenkins.log太大了

    用查找命令找出大于1G的文件 find / -size +1G -print 为什么jenkins.log会产生40+G的文件? 以上在Windows上的时候,运行了几个月,也没有发生这种现象? 而在 ...

  5. CentOS mysql硬盘满了挂载阿里云硬盘

    前提,昨天晚上导入数据库到本地时候发现硬盘满了,出了,好多错,这边在目录下新建了一个/mysql这样的数据库目录,再将/etc/my.cnf 下的datadir 指向到/mysql下,就可以了 阿里云 ...

  6. 24小时学通Linux内核之如何处理输入输出操作

    真的是悲喜交加呀,本来这个寒假早上8点都去练车,两个小时之后再来实验室陪伴Linux内核,但是今天教练说没名额考试了,好纠结,不过想想就可以睡懒觉了,哈哈,自从大三寒假以来还没睡过懒觉呢,现在也有更多 ...

  7. Linux硬盘性能检测

    对于现在的计算机来讲,整个计算机的性能主要受磁盘IO速度的影响,内存.CPU包括主板总线的速度已经很快了. 基础检测方法 1.dd命令 dd命令功能很简单,就是从一个源读取数据以bit级的形式写到一个 ...

  8. linux硬盘分区格式化及挂载

    1.硬盘的接口类型 硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在linux上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为 ...

  9. 修改虚拟机linux硬盘的大小

    一.概述 Ubuntu用了一段时间,系统已从原来的4G增长到8G,导致虚拟磁盘不够用,需要修改虚拟硬盘的大小. 但是,修改虚拟机硬盘的大小不像修改内存那么简单,操作一个滑动条就轻松搞定.要知道虚拟硬盘 ...

随机推荐

  1. MyBatis 处理关系运算符

    MyBatis mapper文件是xml文件,使用关系运算符需要进行转义. 关系运算符 转义后字符 < < <= <= > > > >=

  2. [Reversing.kr] Easy_KeygenMe Writeup

    IDA打开.Main()函数就是关键算法 v6,v7,v8 是连续的 .可看成 L=[16,32,48].输入的name每位分别于L[]异或 得到的值存在v13.然后清空v9的值 ,输入Serial储 ...

  3. EFCore合并多条迁移记录

    方法来自 merge-migrations-in-entity-framework-core 更新数据库到最新结构 删除迁移目录下的所有迁移脚本 新建一个迁移 注释掉Up()和Down()方法中的代码 ...

  4. Vim编辑器显示行数

    很多时候,我们编写代码的时候,编译器报错,在某一行,这时我们虽然可以:行数来跳转,但是没有直观的行数,总是感觉不妥,vi和vim默认是没有行号的,那么怎么办呢?下面我就教你怎么设置行号. 工具: 一台 ...

  5. Dockerfile 中的 COPY 与 ADD 命令

    Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景. Build 上下文的概念 在使用 docker ...

  6. ruby中to_s和to_str、to_i和to_int、to_a和to_ary、to_h和to_hash的解释说明

    包括to_s和to_str.to_i和to_int.to_a和to_ary.to_h和to_hash.统称为to_x和to_xxx. 那么,to_x和to_xxx的区别是什么,什么时候使用to_x,什 ...

  7. EF 的 CURD 操作

    EF 的 CURD 操作 这里采用了数据库 Northwind,下载地址:https://northwinddatabase.codeplex.com/ 增 /// <summary> / ...

  8. vb.net C# AtlAxGetControl 函数使用方法

    先省略一万字的坑坑坑 找遍了互联网既然没搜索到相关资料 一定是我搜索的方法有问题 下面简单几句代码 第一种方法 Public Declare Function AtlAxGetControl Lib ...

  9. .NET Core 如何使用Session

    第一步先注册session: 在Startup.cs文件中的ConfigureServices方法中添加: services.AddSession(); 在Startup.cs文件中的Configur ...

  10. Spring boot集成spring session实现session共享

    最近使用spring boot开发一个系统,nginx做负载均衡分发请求到多个tomcat,此时访问页面会把请求分发到不同的服务器,session是存在服务器端,如果首次访问被分发到A服务器,那么se ...