磁盘空间满,如何处理?

作为运维人员,磁盘空间报警是最寻常遇到的情况,那么遇到空间如何处理呢?这里介绍一下处理办法及处理思路。

操作系统:centos系统 、Ubuntu

1 定位目录

收到空间报警信息,首先不用慌,运维人员最忌讳遇事不冷静。第一步通过命令df -PTh 查看具体哪个目录报警,例如:

[root@k8s-master01 /]# dd if=/dev/zero bs=2048 count=5000000 of=/root/10Gb.file # 人为制造空间
500000+0 records in
500000+0 records out
1024000000 bytes (1.0 GB) copied, 5.06027 s, 202 MB/s
[root@k8s-master01 /]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs 1.4G 4.4M 1.4G 1% /run
tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/mapper/vg00-root 18G 13G 5.5G 70% /
/dev/sda1 197M 128M 70M 65% /boot

通过查看,发现是/ 目录报警 

2 查看目录空间内容占比

进入 / 目录查看 ,通过 命令 du -h --max-depth=1  查看第一层目录占比,确定目录大概占比情况

[root@k8s-master01 /]# du -h --max-depth=1
117M ./boot
0 ./dev
du: cannot access ‘./proc/15581’: No such file or directory
du: cannot access ‘./proc/15596/task/15596/fd/3’: No such file or directory
du: cannot access ‘./proc/15596/task/15596/fdinfo/3’: No such file or directory
du: cannot access ‘./proc/15596/fd/4’: No such file or directory
du: cannot access ‘./proc/15596/fdinfo/4’: No such file or directory
0 ./proc
4.4M ./run
0 ./sys
36M ./etc
5.1G ./root
4.5G ./var
0 ./tmp
4.0G ./usr
12K ./home
0 ./media
0 ./mnt
56M ./opt
0 ./srv
14G .

 可以发现 /root /var /usr  三个目录占比最高 ,在正常情况下,这三个目录存放不同性质内容,目录规划可参考Linux 目录规划内容

进入 /root 目录,对立面内容做进一步筛选分析,可以发现占比文件不在目录中,而是以文件形式存在于服务器中,并通过 ls|xargs du -sh定位到 具体文件,判断是否是需要的,不是必须文件,可以删除从而释放空间

[root@k8s-master01 ~]# du -h --max-depth=1
0 ./.pki
4.0K ./.ssh
3.2M ./.kube
4.0K ./.oracle_jre_usage
49M ./metrics-server-0.3.6
4.0K ./data
16K ./.java
704K ./metrics-server-0.5.0
24K ./ingress-controller
5.1G .
[root@k8s-master01 ~]# ls|xargs du -sh
3.7G 10Gb.file # 测试机器空间不足,临时中断产生
977M 1Gb.file
8.7M apache-maven-3.8.4-bi

3.crontab 任务产生日志造成的

在第2步中,针对一般性文件造成空间报警,通常已经足够用了,有时服务器设置了过多crontab定时脚本,而脚本本身有没有对脚本日志做限制,就会造成运行一段时间后,系统目录 /var  空间不足,进一步发现是/var/spool/clientmqueue/  ,解决方法是使用命令cd /var/spool/clientmqueue && ls|xargs rm -rf进行清理。但是在清理时,如果文件的数量特别多,那么执行ls|xargs rm -rf命令也会长时间无反应,不要着急,这是命令正在处理中的正常表现。如果想快速处理的话,可以直接删除目录 ,然后新建一个,再配置目录权限,或者 更改文件目录名再新建。

mkdir clientmqueue && chmod 770 clientmqueue && chown smmsp:smmsp -R /var/spool/clientmqueue

如果想一劳永逸的话,则要求所有定时脚本 后面追加>/dev/null2>&1

posted @   静言善思  阅读(532)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示