rsync "no space left" 的目标磁盘 df -i 与 inode 耗尽
发布时间 - 2026-01-29 00:00:00 点击率:次这是典型的 inode 耗尽问题,rsync 写入大量小文件时即使磁盘块充足,若目标分区 inode 用尽(df -i 显示 IUse% ≥95%)也会报“No space left on device”。
rsync 报 “No space left on device” 但 df -h 显示空间充足
这是典型的 inode 耗尽问题。rsync 在写入新文件(尤其是大量小文件)时,即使磁盘块还有富余,只要目标分区的 inode 用完了,就会触发该错误。此时 df -h 看起来一切正常,但 df -i 会显示 Use% 接近或等于 100%。
确认是否为 inode 耗尽:用 df -i 检查目标挂载点
运行 df -i /path/to/dest(把 /path/to/dest 替成你的 rsync 目标目录所在挂载点),重点关注三列:
-
Inodes:总 inode 数 -
IUsed:已用 inode 数 -
IUse%:使用百分比 —— 若 ≥95%,基本可判定是瓶颈
注意:不同文件系统默认 inode 数量策略不同。例如 ext4 默认按每 16KB 分配一个 inode;若存大量极小文件(如日志、缓存、Git 对象),很容易提前耗尽。
临时缓解:清理无用小文件,而非扩大 inode
inode 数量在格式化时固定(ext* 系统无法在线扩容),所以不能“加 inode”,只能释放。常见操作包括:
- 查找并删除零字节文件:
find /mnt/dest -xdev -type f -size 0 -delete - 清理重复或过期的缓存目录(如
node_modules、.cache、__pycache__) - 检查是否有被误删但仍被进程占用的文件(
lsof +L1可发现) - 避免 rsync 带
--delete后又中断 —— 中断可能导致部分旧文件残留,而新文件又不断生成
长期预防:创建文件系统时预留足够 inode,或改用更适合小文件的方案
下次格式化目标磁盘时,可显式指定 inode 密度。例如 ext4 下:
mkfs.ext4 -i 8192 /dev/sdX1
其中 -i 8192 表示「每 8192 字节分配一个 inode」(默认通常是 16

ls 和 find 性能。
更务实的做法是:对纯小文件场景(如对象存储代理层),考虑 XFS(默认 inode 动态分配)或 Btrfs;或者用归档压缩(tar + gzip)替代直接同步大量碎片文件。
真正麻烦的不是报错本身,而是 rsync 不会告诉你到底是块空间还是 inode 满了 —— 必须手动 df -i 才能定位。这点容易被跳过,尤其当运维习惯只看 df -h 的时候。
# git
# node
# 字节
# delete
# 对象
# 这是
# 会报
# 文件系统
# 就会
# 尤其是
# 很容易
# 越多
# 满了
# 又不
# 你到底
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
如何在IIS7中新建站点?详细步骤解析
如何快速搭建安全的FTP站点?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Laravel如何为API生成Swagger或OpenAPI文档
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
如何自定义建站之星模板颜色并下载新样式?
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何挑选高效建站主机与优质域名?
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
EditPlus中的正则表达式 实战(2)
在Oracle关闭情况下如何修改spfile的参数
EditPlus中的正则表达式 实战(4)
Firefox Developer Edition开发者版本入口
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
高防服务器租用指南:配置选择与快速部署攻略
如何基于云服务器快速搭建个人网站?
如何为不同团队 ID 动态生成多个“认领值班”按钮
Laravel如何自定义分页视图?(Pagination示例)
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
如何在云指建站中生成FTP站点?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
如何在阿里云虚拟主机上快速搭建个人网站?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Thinkphp 中 distinct 的用法解析
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何在不使用负向后查找的情况下匹配特定条件前的换行符
,怎么在广州志愿者网站注册?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
浅述节点的创建及常见功能的实现
在线制作视频的网站有哪些,电脑如何制作视频短片?
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel如何使用Vite进行前端资源打包?(配置示例)

