0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统解决磁盘空间不足的问题

嵌入式加油站 来源:嵌入式加油站 2023-11-09 11:05 次阅读

【前言】

笔者最近有服务器突然停服务了,我登录服务器吓了一跳,下一面我们一起回顾一这个惊心动魄故事吧。

首先,使用ssh远程登录服务器,请出df大神看看硬盘的使用情况吧

df

Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

一般/dev/vda1为系统盘,像vdb、vdc为数据盘。

我们发现df输出的格式没有单位,可读性太低了。使用-h参数可解决。

-h或–human-readable 以K,M,G为单位,提高信息的可读性。

wKgZomVMTIWABYPvAABjUvsIj80001.jpg

我的妈啊,所以居然/dev/vda1为系统盘100%, 还好能ssh登录服务器,只是http,mysql,java应用服务崩溃了。

是哪个目录或文件太小了,导致呢?我想到可能是队友java应用打印的日志,但他布哪个目录,我不清楚。我们有应用服务一般在/www/wwwroot, 所以我先定位在此目录。然后请出du命令

du

Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小。先看看du

-h:以人类可读的方式显示

-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小

du -h:这个就不多说了。
du -h

从输出可以看出du是显示所有目录和子目录所占用的磁盘空间。输出内容太多太乱了,不方便排查。

可以用下面的参数

–max-depth=<目录层数>

使用--max-depth=<目录层数> 超过指定层数的目录后,就方面排除了。

比如最多显示1层:

wKgaomVMTLiAetvZAABradVQjjI469.jpg

显示多了不方便查看,太乱多,如果再多点,还很难查到,哪个目录或文件大,就要用到排序, 请出sort命令。

sort

使用sort命令即可排序。 使用|来分隔不同的命令。

下面说下本文会用到的sort参数: -r(--reverse) 以相反的顺序来排序 -h( --human-numeric-sort):使用易读性数字(例如:2K、1G),默认从小到大排序 -s -s或–summarize 仅显示总计。只显示指定目录或当前目录的大小。

我们只显示一层目录大小并排序,就能很多找出最大的目录或文件。

wKgZomVMTNaAPeGyAADAoynRgCs072.jpg
wKgaomVMTPCADlcKAAAcaK0GQ1E156.jpg

这里我们很快知道了哪个目录占用空间大,直接进入目录manager

查看一下,发现有一个日志文件,太吓人了

wKgZomVMTIWAS2eAAAD0I2wOb0o230.jpg

不知队友是怎么想的,这么的日志文件,怎么查看呢。打印的是一些什么呢?看日志命名应该是9月20日启动的服务,才过去几天啊,就打印了那么多日志,云服务器很贵的,不能这样玩啊, 而且这个日志文件,根本没法看啊。

争得队友同事,把此文件删除。下面命令:

rm -f 0920.log

占用硬盘空间仍然

再df -h看一下,占用有硬盘空间依然。怎么回事呢?

虽然删除了那个文件,但是服务一直占用那个文件,必须要重启占用应用服务。是哪个服务,我也不知道。

用下面看看是哪个程序在写0920.log

lsof -n | grep 0920.log

wKgaomVMTIWAR1HaAAFVbza1Sa0777.jpg

只知道是java应用在写0920.log,具体服务还是不清楚。

问题临时解决

用history看看执行过什么命令,果然被我查到了。

wKgaomVMTIWAAQ_AAAAHPuG4x4E430.jpg

如果history没找到,可以看看开机启动, 用下面命令:

cat /etc/rc.local 和

ls /etc/init.d

重启java服务后, 硬盘空间,就释放了。

wKgaomVMTIWAbrRfAAAl_uFOBog950.jpg

但这个方法,治标不治本,过几天,还是被日志撑满服务器。还是让队友改代码吧。

总结

应用程序打印日志无可说的, 但这样打印日志,不可取的。各位看官你们说呢?







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26920
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16077

原文标题:Linux查找大文件、大目录 - 解决磁盘空间不足的问题

文章出处:【微信号:嵌入式加油站,微信公众号:嵌入式加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在Ubuntu系统中释放磁盘空间

    这个带有脚本的快速指南有助于清理旧的快照版本,并在 Ubuntu 系统中释放一些磁盘空间
    发表于 10-20 10:27 2202次阅读

    Linux磁盘空间异常爆满,该怎么查?

    在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警。
    发表于 11-29 09:00 675次阅读

    Linux webpack 10.1false磁盘空间报告错误

    大家好,在几次不成功的安装之后,我甚至尝试以root用户身份登录(!),但总是得到错误的错误警告说“磁盘空间太小”。但是我有大约17 GB的可用空间。Debian和Debian类似的分布都有相同
    发表于 09-29 14:54

    Linux下增加磁盘空间的步骤

    在给Linux分区时,总是有那么一点吝啬,给的空间较小。在使用过程中,装上Matlab等大型软件后,才蓦然发现磁盘已没有空间,不过亡羊补牢为时不晚。Warning:对硬盘分区很危险,要
    发表于 07-11 08:42

    Linux下可以用df命令查看磁盘空间

    Linux下 df 命令查看磁盘空间
    发表于 07-12 11:07

    Linux的剩余磁盘空间利用技巧

    Linux利用剩余的磁盘空间
    发表于 07-30 14:28

    启动DevEco Studio的本地模拟器提示磁盘空间不足要怎么解决?

    启动模拟器失败,提示“Insufficient disk space (< 2 GB) for the deployed directory.”,磁盘空间不足
    发表于 06-07 10:16

    如何在Mac上清理磁盘空间?这些方法你用过了吗

    篓】,或者使用组合按键【Command+Shift+Delete】直接清空废纸篓3、使用储存空间管理清理磁盘空间Mac系统提供了一个实用的储存空间管理功能,可按照以下步骤进行优化
    发表于 09-09 21:05

    请问根目录分区磁盘空间不够了怎么扩充?

    安装了一些软件后,根目录磁盘空间使用率已经达到92%了,SD卡是32G的,实际只使用了16G,可不可以扩大根目录分区的容量,把后面16G也给分配到根目录分区?
    发表于 09-13 07:22

    Linux中的可用磁盘空间如何检查?

    跟踪磁盘利用率信息是系统管理员(和其他人)的日常待办事项列表之一。Linux 有一些内置的使用程序来帮助提供这些信息。df 命令意思是 “disk-free”,显示 Linux
    的头像 发表于 07-25 18:53 3203次阅读
    <b class='flag-5'>Linux</b>中的可用<b class='flag-5'>磁盘空间</b>如何检查?

    通过df命令显示磁盘空间使用情况

    这 df 命令显示文件系统上的设备名称、总块数、总磁盘空间、已用磁盘空间、可用磁盘空间和挂载点信息。
    的头像 发表于 05-16 11:30 1238次阅读

    服务器运维过程收到磁盘空间告警怎么办

    在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警:
    的头像 发表于 11-03 10:30 1403次阅读

    如何释放VMware虚拟磁盘未使用空间呢?

    在Windows 11中通过VMware安装Ubuntu 22.04做一些Linux相关的学习,刚安装的时候VMware虚拟磁盘空间也就6~7GB,但是没用几天,VMware虚拟磁盘空间就飙升
    的头像 发表于 08-28 10:15 2780次阅读
    如何释放VMware虚拟<b class='flag-5'>磁盘</b>未使用<b class='flag-5'>空间</b>呢?

    linux磁盘空间满了怎么清理

    和告警信息一致,接着我们就是要找到导致磁盘空间满的目录或文件 如何找到占用空间大的目录或文件? 一种比较笨的方法是,在根目录下,通过du -hs命令,列出各目录所占空间大小。
    的头像 发表于 11-09 11:46 732次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>磁盘空间</b>满了怎么清理

    linux传输一半磁盘满了怎么清理

    在使用Linux操作系统时,磁盘空间不足是一个常见的问题。当磁盘空间超过一半被使用时,可能会导致系统
    的头像 发表于 11-23 10:34 247次阅读