zoukankan      html  css  js  c++  java
  • Linux环境下 no space left on device

    1、问题描述

    fastDFS上传文件之后返回的不是文件的路径,而是一个null。

    于是对fastDFS进行重启,发现storage.d一直无法重启,进入/fdfs/storage/logs/目录查看报错日志,发现报no space left on device。于是随便找一个目录输入

    touch text.txt

    也是报no space left on device。基本可以确定是磁盘空间不足,

    输入

    df -h

    发现磁盘空间是还够用,于是检查是否inode节点不够

    df -i

    inode节点用完了,因为是fastDFS文件服务器,怀疑图片小文件过多,于是删除/fdfs/storage/data目录下的文件。再次执行df -i 。发现inode节点仍然占用了93%.

    2、查找问题目录

    既然知道是inode节点用完了,那么就要可以搜索具体是哪里的小文件太多造成inode节点用完了。

    可以通过遍历根目录下所有的目录,查看这些目录下的所有的文件,并计算文件的数量

    for i in /*; do echo $i; find $i | wc -l; done

    shell代码注释

    #遍历/目录下所有的目录
    for i in /*;
    do
      #打印当前目录
      echo $i; 
      #列出当前目录下所有的文件与子目录,并计算数量
      find $i | wc -l;
    done

    如果这一步执行的比较慢,也可以一个目录一个目录的执行,不用循环执行。

    最后定位到 

    /var/spool/postfix/maildrop

    目录下有大量的文件,但是这个文件目录仅有65M。

    对此目录下的大量小文件进行删除

    cd /var/spool/postfix/maildrop/
    ls | xargs rm -rf

    3、参考文章

    https://www.lastupdate.net/1617.html

    https://www.todocker.cn/1265.html

    https://blog.csdn.net/qq_41571056/article/details/106517424

  • 相关阅读:
    在k8s上部署第一个php应用
    在k8s中的基本概念
    kubernetes 环境搭建
    docker搭建私有仓库
    mysql导入数据乱码的解决
    代码单词
    让代码更容易读
    docker中的link
    docker基本
    解决无法将“babel”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 原文地址:https://www.cnblogs.com/cplinux/p/15735611.html
Copyright © 2011-2022 走看看