【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
相关推荐
---学无止境---8 分钟前
Linux中poll的实现
linux
Zwb29979234 分钟前
Day 24 - 文件、目录与路径 - Python学习笔记
笔记·python·学习
利刃大大1 小时前
【高并发服务器】三、正则表达式的使用
服务器·c++·正则表达式·项目
芝士小宇1 小时前
tcp 服务器的设计思路
服务器·网络·tcp/ip
wu~9701 小时前
web服务器有哪些?服务器和web服务器有什么区别
运维·服务器·前端
₯㎕星空&繁华1 小时前
阿里云服务器安装MySQL服务器
服务器·ubuntu·阿里云·云计算
爱倒腾的老唐1 小时前
13、Linux 基本权限
linux·运维·服务器
罗政1 小时前
CentOS 7.6 系统源码部署 HivisionIDPhotos
linux·运维·centos
cililin2 小时前
第4章 文件管理
linux·服务器·网络·操作系统·unix
能工智人小辰2 小时前
Coordinate Attention for Efficient Mobile Network Design 学习笔记
笔记·学习·php