磁盘空间满,如何处理?
作为运维人员,磁盘空间报警是最寻常遇到的情况,那么遇到空间如何处理呢?这里介绍一下处理办法及处理思路。
操作系统: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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律