Linux 根文件夹满了,但找不到根源问题在哪? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kisshere
V2EX    程序员

Linux 根文件夹满了,但找不到根源问题在哪?

  •  
  •   kisshere 2022-12-27 11:56:28 +08:00 4921 次点击
    这是一个创建于 1026 天前的主题,其中的信息可能已经有所发展或是发生改变。
    cd / df -h Filesystem Size Used Avail Use% Mounted on /dev/md2 25G 24G 0 100% / 

    但是根文件夹下显示所有文件夹(比如 usr 、var 、tmp 等文件夹)大小之和为 10G ,根本没用到 24G

    删了一个 2G 的日志文件,有趣的来了,根文件夹所有文件夹大小之和变为 8G ,Avail 立马变为 2G ,然后 1.8G ,1.6G ,1.5G......不断缩小,直至为 0 。但根文件夹所有大小之和还是 8G

    这是怎么造成的?怎么排查?

    43 条回复    2022-12-29 12:00:54 +08:00
    angryPHP
        1
    angryPHP  
       2022-12-27 11:58:43 +08:00
    du 命令
    kisshere
        2
    kisshere  
    OP
       2022-12-27 12:04:53 +08:00 via Android
    @angryPHP 命令全部?怎么排查?
    yinheli
        3
    yinheli  
       2022-12-27 12:05:54 +08:00   1
    lsof -nP | grep 'deleted'
    yinheli
        4
    yinheli  
       2022-12-27 12:06:14 +08:00
    看看有没有删掉的,但是句柄还在的文件
    aaa5838769
        5
    aaa5838769  
       2022-12-27 12:06:26 +08:00
    用 du 命令 从根目录开始往下找到是那个目录占用最大。
    chrawsl
        6
    chrawsl  
       2022-12-27 12:06:31 +08:00
    du / -h -d1

    -d1 代表递归深度
    47jm9ozp
        7
    47jm9ozp  
       2022-12-27 12:09:33 +08:00   2
    ncdu
    kisshere
        8
    kisshere  
    OP
       2022-12-27 12:15:03 +08:00
    @aaa5838769
    @chrawsl 我把根目录下面所有文件夹都计算过了的,总共只占用了 8G ,但是还是显示 Used 是 24G
    idblife
        9
    idblife  
       2022-12-27 12:20:30 +08:00
    yum install ncdu
    不用谢
    zzfra
        10
    zzfra  
       2022-12-27 12:23:22 +08:00
    我不负责地猜测一下,docker 导致的问题
    AoEiuV020CN
        11
    AoEiuV020CN  
       2022-12-27 12:26:39 +08:00
    发现 Avail 在变小就应该马上切 u 盘系统再考虑怎么排查,
    css3
        12
    css3  
       2022-12-27 12:32:54 +08:00
    看下回收站是否清空
    nbweb
        13
    nbweb  
       2022-12-27 12:35:40 +08:00 via Android
    先把 md2 umount 了再看看容量。
    troilus
        14
    troilus  
       2022-12-27 12:38:12 +08:00
    大概率是 docker ,前几天同样问题
    lerry
        15
    lerry  
       2022-12-27 12:51:08 +08:00
    @yinheli #4 我遇到过,重启后好了
    Dragonish3600
        16
    Dragonish3600  
       2022-12-27 12:54:25 +08:00 via iPhone
    reboot first
    xyjincan
        17
    xyjincan  
       2022-12-27 13:07:58 +08:00
    删除没有关闭的文件,重启系统 or 进程就好了

    建议使用 echo > xxx.log 删除日志文件
    defunct9
        18
    defunct9  
       2022-12-27 13:12:37 +08:00
    lsof +L1
    villivateur
        19
    villivateur  
       2022-12-27 13:17:03 +08:00   8
    @defunct9 这次居然没让开 ssh ?
    dd991
        20
    dd991  
       2022-12-27 13:17:06 +08:00
    temp 文件夹
    limbo0
        21
    limbo0  
       2022-12-27 13:30:07 +08:00
    du -sh -- * | sort -rh
    Jirajine
        22
    Jirajine  
       2022-12-27 13:35:22 +08:00
    下个 gdu 看看
    gamexg
        23
    gamexg  
       2022-12-27 13:42:56 +08:00
    linux 下正在打开的文件也可以删除,但是这个删除只是 ls 不显示,实际这个文件还是存在,并且占用空间。直到使用这个文件程序释放这个文件,文件才被真的删除,空间才会被释放。

    所以最简单的办法,重启下再看空间占用。
    labnotok
        24
    labnotok  
       2022-12-27 13:45:12 +08:00 via Android
    ncdu -x
    McreeWu
        25
    McreeWu  
       2022-12-27 13:50:35 +08:00
    一般是 deleted 文件导致的,如果找不到的话可以看看磁盘预留空间
    wjx0912
        26
    wjx0912  
       2022-12-27 13:53:16 +08:00
    github search: ncdu
    V2April
        27
    V2April  
       2022-12-27 13:58:40 +08:00
    我遇到过一次这个,是 onlyoffice 的日志文件
    stephenyin
        28
    stephenyin  
       2022-12-27 14:05:07 +08:00
    找 /home/xxx 下大于 500M 的文件:find /home/xxx -size +500m -name -type f
    stephenyin
        29
    stephenyin  
       2022-12-27 14:05:41 +08:00
    @stephenyin #28 find /home/xxx -size +500m -type f
    stephenyin
        30
    stephenyin  
       2022-12-27 14:07:14 +08:00
    @stephenyin #29 find /home/xxx -size +500M -type f
    DingJZ
        31
    DingJZ  
       2022-12-27 14:29:49 +08:00
    遇到过一次 Inodes 的问题,df -i 查看 Inodes 占用,如果是的话清 /tmp
    julyclyde
        32
    julyclyde  
       2022-12-27 15:01:58 +08:00
    这么经典的故障

    丢失的空间可能都是类似于你“删除了一个日志”这类操作导致的
    pingpp00
        33
    pingpp00  
       2022-12-27 15:24:04 +08:00
    在根目录下执行 du -shx * ,然后依次排查
    QKgf555H87Fp0cth
        34
    QKgf555H87Fp0cth  
       2022-12-27 15:43:43 +08:00
    sudo du -hsx * | sort -rh
    gam2046
        35
    gam2046  
       2022-12-27 15:46:51 +08:00
    是某个应用占用了个大文件,但是你已经通过 rm 把这个文件删掉,同时程序并未释放此文件的句柄,所以会造成你这种情况。因为句柄被占用,文件在内核中并未真正释放。

    如果记得是哪个程序占用的大文件,重启这个程序即可。
    如果不记得是哪个程序,重启系统即可。
    JohnBull
        36
    JohnBull  
       2022-12-27 15:58:11 +08:00
    肯定是有个超大的匿名文件
    zooo
        37
    zooo  
       2022-12-27 16:09:55 +08:00
    ncdu 确实好用些
        38
    lelandsu  
       2022-12-27 20:50:48 +08:00 via iPhone
    ncdu -x /
    还找不到问题再来讨论
    lelandsu
    xwayway
        39
    xwayway  
       2022-12-28 11:14:55 +08:00
    楼上各位大哥说得都很在理,我就想蹲一个结果
    gearfox
        40
    gearfox  
       2022-12-28 14:22:48 +08:00
    @lelandsu 这样应该直接就解决了,哈哈哈
    ninvfeng
        41
    ninvfeng  
    PRO
       2022-12-28 17:07:04 +08:00
    1. 执行 du -sh / 看看哪个文件夹最大
    2. 然后进最大的文件夹执行 du -sh ./*
    重复执行第二步就能找到最大的文件在哪
    如果删除后空间没释放就重启一下对应的程序
    julyclyde
        42
    julyclyde  
       2022-12-29 09:07:58 +08:00
    @ninvfeng2020 你这个和 OP 错的一样啊
    zhuanggu
        43
    zhuanggu  
       2022-12-29 12:00:54 +08:00
    不是文件夹大啊,而是根目录下有隐藏文件。ls -a
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2754 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 09:32 PVG 17:32 LAX 02:32 JFK 05:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86