美文网首页
解决linux系统下分区文件占用总空间比实际分区总容量要小却提示

解决linux系统下分区文件占用总空间比实际分区总容量要小却提示

作者: 疯疯疯子子子 | 来源:发表于2020-03-03 19:40 被阅读0次

关键词

  • 磁盘
  • inode
  • -bash: /bin/rm: Argument list too long

背景

今日线上巡检时,有同事告知,部分应用无法使用。故连忙连上对应服务器查看相关状态.在连接过程中发现 ssh连接异常缓慢,并且在登录后有如下提示

[root@webmap_web:/root]
- bash echo: write erroe :No space left on device

问题定位

根据登录后的提示,可初步判断是由于磁盘空间已满或者有大量小文件将inode值打满,导致的。故执行以下命令查看具体情况

[root@webmap_web:/var/log]
#du -sh *
8.0K    aliyun-util.log
25M audit
8.0K    boot.log
208K    btmp
0   btmp-20190801
124K    cloud-init.log
2.2M    cron
948K    cron-20190804
944K    cron-20190811
948K    cron-20190818
948K    cron-20190825
24K dmesg
24K dmesg.old
0   dracut.log
129M    httpd
12K lastlog
15G maillog
5.2M    maillog-20190804
5.2M    maillog-20190811
5.2M    maillog-20190818
5.2M    maillog-20190825
816K    messages
4.0K    messages-20190804
4.0K    messages-20190811
4.0K    messages-20190818
4.0K    messages-20190825
4.0K    ntp.log
4.0K    ntpstats
8.9M    sa
116K    secure
72K secure-20190804
72K secure-20190811
68K secure-20190818
64K secure-20190825
0   spooler
0   spooler-20190804
0   spooler-20190811
0   spooler-20190818
0   spooler-20190825
0   tallylog
120K    wtmp
4.0K    yum.log

通过上述命令可发现maillog有15G的日志,首先查看日志报错,发现为

postfix/sendmail[3993]: warning: inet_protocols:IPv6 support is disabled:Address family not supported by protocol
postfix/sendmail[3993]: warning: inet_protocols: configuring for IPv4 support only

于是先赶紧清除日志

echo > miallog

清除后依旧系统依旧提示

- bash echo: write erroe :No space left on device

于是使用下列命令去查看

[root@webmap_web:/var/spool/postfix]
#df -i
Filesystem       Inodes    IUsed    IFree IUse% Mounted on
/dev/vda1       2621440  2621423       17  100% /
tmpfs           4110040        1  4110039    1% /dev/shm
/dev/vdb1      19660800     2154 19658646    1% /home
/dev/vdc1      32768000 20503172 12264828   63% /var/www/html/map

发现系统盘的inode值已经被打满了。故系统盘一定存在大量小文件,未被删除。因log显示maillog有大量日志,故怀疑/var/spool/postfix/下应该有很多文件产生 于是进入该目录

[root@webmap_web:/var/spool/postfix]
#du -sh *
4.0K    active
4.0K    bounce
4.0K    corrupt
4.0K    defer
4.0K    deferred
4.0K    flush
4.0K    hold
4.0K    incoming
1.3G    maildrop
4.0K    pid
4.0K    private
4.0K    public
4.0K    saved
4.0K    trace

发现 maildrop目录下有大量文件,故决定删除。

[root@webmap_web:/var/spool/postfix/maildrop]
#rm -rf *
-bash: /bin/rm: Argument list too long

但发现系统提示,数据太多无法删除,于是通过命令统计了下目录下大致有多少文件

[root@webmap_web:/var/spool/postfix/maildrop]
#ls |wc -l
337912

emmmmm,文件数量很大,于是决定结合xargs命令来删除,ls | xargs -n 9 rm -rf ,ls列出当前目录下的所有文件,以空格作为分隔, xargs是一个过滤器, -n 9 表示每9个文件作为一组,作为 命令 rm -rf 的参数,这样命令行就不会过长了。

[root@webmap_web:/var/spool/postfix/maildrop]#
ls |xargs -n 9 rm -f

等待一段时间后,可以发现系统磁盘的inode值已经降低到83%了。系统以恢复正常
在系统正常后,我们再来处理上面maillog中的报错信息

修改方法:

/usr/sbin/postconf | grep inet_protocols  --查看当前的inet_protocols 

inet_protocols = all

vi /etc/postfix/main.cf

inet_protocols = all

改为inet_protocols = ipv4

重启/etc/init.d/postfix restart

相关文章

  • 解决linux系统下分区文件占用总空间比实际分区总容量要小却提示

    关键词 磁盘 inode -bash: /bin/rm: Argument list too long 背景 今日...

  • Linux扩展分区和文件系统

    磁盘分区 linux也与windows一样,为了使用全部的磁盘空间,需要先对磁盘分区;如果所有分区的总容量小于磁盘...

  • 2018-01-17

    Linux安装 2-4 Linux分区 分区:把大硬盘分为小的逻辑分区 格式化:写入文件系统 分区设备文件名:给每...

  • Linux文件系统(1)

    在Windows系统下我们分区后每个分区都是一个独立的文件系统。但是Linux不同,Linux文件系统是从根文件系...

  • Linux磁盘分区和挂载点

    在Linux系统中最多只有16个分区。Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 ...

  • 磁盘管理与维护

    1.df命令 用来检查Linux系统磁盘系统空间的占用情况。格式如下: 查看当前系统磁盘分区情况,并显示文件系统类...

  • Linux的逻辑卷

    在制作文件系统过程中,其中会为系统分配各分硬盘分区的容量,这是就要计划好磁盘分多少个区,每个分区的容量是多大空间。...

  • Linux常用指令(非常实用,你一定会用到:P)

    查看磁盘容量: sudo df -h 查看磁盘分区总容量和剩余容量 sudo du -h 查看当前目录下各个文件...

  • 查看挂载信息

    df -Th 可以看分区 文件系统 大小 占用 空闲 占比 挂载点 一般df看的是磁盘分区大小 ...

  • Linux操作系统的一些说明

    1.操作系统分区原理 (1).win系统分区原理 (2).linux系统分区原理 2.内核文件与发行版 Linux...

网友评论

      本文标题:解决linux系统下分区文件占用总空间比实际分区总容量要小却提示

      本文链接:https://www.haomeiwen.com/subject/qozsuctx.html