ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Linux-磁盘空间不足的清算步调(详细版本)
[打印本页]
作者:
熊熊出没
时间:
2024-8-21 11:32
标题:
Linux-磁盘空间不足的清算步调(详细版本)
当 Linux 服务器出现 “no space left on device” 错误时,意味着磁盘空间已满,需要采取一些措施来清算磁盘,可以根据下面步调依次清算:
1. 查抄磁盘利用情况
起首,利用 df 和 du 下令查抄磁盘利用情况,找出哪些目次占用了大量空间。
可以通过如下下令来查询
df -h
复制代码
举例:
======================================检察磁盘利用情况,明显看到这个路径下磁盘利用100%/data1/server/server/officeauto/logs======================================[root ~]# df -h
Filesystem Size Used Avail Use% Mounted ondevtmpfs 16G 0 16G 0% /devtmpfs 16G 4.0K 16G 1% /dev/shmtmpfs 16G 1.7G 14G 11% /runtmpfs 16G 0 16G 0% /sys/fs/cgroup/dev/mapper/centos-root 50G 5.4G 45G 11% //dev/sdb1 500G 167G 334G 34% /home/dev/sda1 1014M 152M 863M 15% /boot10.5.122.99:/data1/server/server/officeauto/logs 500G 495G 4G 100% /var/lib/kubelet/pods/99739912-b5d4-4bda-bc68-e3ca590fbad2/volumes/kubernetes.io~nfs/officeauto-logs......
复制代码
PS:直接进入该路径进行文件清算,该案例的文件是日志文件,可直接清算
/data1/server/server/officeauto/logs
2. 查找大文件和目次
利用 du -sh 下令查找占用大量空间的文件和目次。可以通过路径不断深入来查询,最终定位到可删除的文件:
du -sh /* 2>/dev/null
复制代码
举例:
======================================这个下令会表现根目次下每个子目次的大小。你可以递归地查抄子目次,找到占用空间最多的文件和目次。======================================[root@test01 ~]# du -sh /* 2>/dev/null
0 /bin120M /boot119M /data0 /data14.0K /dev41M /etc177G /home0 /lib======================================可以看出路径/home占用比力大,可以继续深入排查======================================[root@test01 ~]# du -sh /home/* 2>/dev/null40K /home/apps21G /home/apps_bak135G /home/data122G /home/docker60K /home/everhomes....
复制代码
3. 清算 Docker 数据
Docker 的 overlay 文件系统也占用了大量空间。你可以清算未利用的 Docker 镜像、容器和卷。
(1)删除未利用的 Docker 镜像
docker image prune -a
复制代码
(2)删除未利用的 Docker 容器
docker container prune
复制代码
(3)删除未利用的 Docker 卷
docker volume prune
复制代码
4. 清算 Kubernetes 日志和缓存
Kubernetes 的日志和缓存文件也大概占用大量空间。你可以清算这些文件。
(1)清算 Kubernetes 日志
======================================
生产环境慎操作,可以根据实际情况增加限定范围,如
"*.log"改为"2023-*.log"来限定只删除23年日志
======================================
find /var/log/containers/ -type f -name "*.log" -delete
复制代码
(2)清算 Kubernetes 缓存
rm -rf /var/lib/kubelet/pods/*/volumes/kubernetes.io~empty-dir/*
复制代码
5. 清算非重要文件
======================================
1.清理临时文件(慎操作)
======================================
rm -rf ~/tmp/*
复制代码
======================================
2.清理下载文件(慎操作)
======================================
rm -rf ~/Downloads/*
复制代码
======================================
3.压缩文件后进行删除
======================================
sudo gzip /var/log/*.log
rm -rf /var/log/*.log
复制代码
6.终极篇
可以整理一个cleanup.sh文件,后续直接执行sh cleanup.sh一步执行清算开释磁盘
#!/bin/bash# 清算旧的日志文件LOG_DIR="/data1/server/server/registry/logs"find $LOG_DIR -type f -name "*.log" -mtime +30 -exec rm -f {} \;# 清算 Docker 数据docker image prune -a
-fdocker container prune
-fdocker volume prune
-f# 清算 Kubernetes 日志和缓存find /var/log/containers/ -type f -name "*.log" -deleterm -rf /var/lib/kubelet/pods/*/volumes/kubernetes.io~empty-dir/*
# 清算暂时文件rm -rf /tmp/*# 清算用户缓存rm -rf /root/.cache/*# 查抄磁盘空间df -h
复制代码
将以上脚本生存为 cleanup.sh,赋予执行权限并运行:
chmod +x cleanup.sh
./cleanup.sh
复制代码
通过这些步调可以开释一些磁盘空间,操纵过程需要慎重,必要情况下可以先做压缩、备份处理!
——编辑者:梦想的边缘
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4