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如何实现API版本控制_Laravel版本化API设计方案
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
轻松掌握MySQL函数中的last_insert_id()
如何将凡科建站内容保存为本地文件?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
如何用PHP快速搭建CMS系统?
Laravel如何使用Telescope进行调试?(安装和使用教程)
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
Java遍历集合的三种方式
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
JavaScript如何操作视频_媒体API怎么控制播放
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Android使用GridView实现日历的简单功能
Laravel怎么清理缓存_Laravel optimize clear命令详解
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
用v-html解决Vue.js渲染中html标签不被解析的问题
JavaScript数据类型有哪些_如何准确判断一个变量的类型
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
教你用AI润色文章,让你的文字表达更专业
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Android中AutoCompleteTextView自动提示
js代码实现下拉菜单【推荐】
Laravel定时任务怎么设置_Laravel Crontab调度器配置
微信小程序 闭包写法详细介绍
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
英语简历制作免费网站推荐,如何将简历翻译成英文?
Laravel如何使用.env文件管理环境变量?(最佳实践)
网站页面设计需要考虑到这些问题
如何在云指建站中生成FTP站点?
jquery插件bootstrapValidator表单验证详解
做企业网站制作流程,企业网站制作基本流程有哪些?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
JS弹性运动实现方法分析
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
敲碗10年!Mac系列传将迎来「触控与联网」双革新
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
EditPlus中的正则表达式 实战(1)

