【Linux】磁盘空间不足

错误提示: no space left on device

经典版(block占用)

模拟

powershell 复制代码
dd if=/dev/zero  of=/var/log/nginx.log    bs=1M count=2000

排查

powershell 复制代码
#1. df -h 查看哪里空间不足,哪个分区

#2. du -sh详细查看目录所占空间
du -sh /* 排查占用空间大的目录
du -sh /var/* 
du -sh /var/log/*  

#3. 最终通过du -sh 排查到具体的大文件或大的目录

#4. 找出后确认是否可以删除.

inode 不足

现象

powershell 复制代码
# df -h 查看发现磁盘空间没有满,那是什么原因导致的呢?

# 排查:
1. df -h查看磁盘空间没有满,df -i查看inode使用情况
2. 找出这个分区中,大目录(目录本身大小大于1MB,du -sh目录所占空间)就行
3. 找出有大量小文件的目录
4. 确认是否可以删除或处理.

# 命令,筛选目录本身大于 1M 的
find / -type d -size +1M

# 命令,筛选目录下,文件数量
find / -type f | xargs dirname | sort | uniq -c | sort

模拟

powershell 复制代码
mkdir -p /lndsnx/test-inode
cd /lndsnx/test-inode 
touch {01..100000} 可能报错参数过长
echo {01..100000} | xargs touch

未彻底删除

原理

文件彻底删除的条件

  1. 删除文件,硬链接数为 0,文件相当于被删除了,使用 rm 命令
  2. 文件调用数为 0,文件是否被使用中

排查步骤:

  1. 如何知道连接数是否为 0,一般 ls,find查看,没有则为 0
  2. 如何知道进程调用数是否为 0,lsof 显示打开的文件,lsof | grep 文件名

模拟

powershell 复制代码
# 模拟文件调用,但是删除了文件入口
tail -f nohup.out

# 通过 tail -f 调用占用着
rm -f nohup.out # 删除

# 查看调用
lsof | grep nohup.out
相关推荐
wanhengidc23 分钟前
云手机存在的意义是什么
运维·服务器·arm开发·安全·智能手机
洛克大航海2 小时前
解锁 PySpark SQL 的强大功能:有关 App Store 数据的端到端教程
linux·数据库·sql·pyspark sql
snow@li2 小时前
运维:部署Jenkins
运维·jenkins
大海绵啤酒肚3 小时前
OpenStack虚拟化平台之T版搭建部署
linux·运维·云计算·openstack
报错小能手3 小时前
计算机网络自顶向下方法25——运输层 TCP流量控制 连接管理 “四次挥手”的优化
服务器·网络·计算机网络
我先去打把游戏先3 小时前
ESP32开发指南(基于IDF):连接AWS,乐鑫官方esp-aws-iot-master例程实验、跑通
开发语言·笔记·单片机·物联网·学习·云计算·aws
oe10193 小时前
好文与笔记分享 A Survey of Context Engineering for Large Language Models(上)
数据库·笔记·语言模型·agent·上下文工程
郭源潮13 小时前
《Muduo网络库:实现TcpServer类终章》
服务器·网络·c++·网络库
web前端神器4 小时前
vitest单元测试笔记
笔记
gtr20204 小时前
Ubuntu24.04 最小化发布 需要删除的内容
linux