Linux服务器提示No space left on device错误解决方法

测试环境报错,经查看发现磁盘空间使用率达100%。通过删除不用的zip文件释放了5G多空间,但删除微服务log日志后空间未缩小。原因是微服务还在运行,空间未实际释放,最终通过kill掉相关服务并重启解决问题。

今天早上,测试环境报了这个错误,第一想法就是磁盘空间不足,

df -h   df /home

查看发现空间使用率  100%

然后就删除一些不用的zip文件,释放了空间5个多G

查找磁盘,发现有几个微服务的log日志达到了10G,然后 sudo rm -rf .out日志,

再df -h 发现空间并没有缩小,看了几篇文章,应该是微服务还再运行,空间并没有实际释放的原因,

kill掉用到这个日志的服务再重启这个服务就好了

### 解决方案概述 “No space left on device” 是 Linux 系统中常见的错误,可能由磁盘空间耗尽或 inode 数量不足引起。以下是针对该问题的具体解决方案。 --- #### 1. 检查磁盘使用情况 通过 `df` 和 `du` 命令可以快速定位磁盘空间占用过高的原因。 - 使用以下命令查看整体磁盘使用情况: ```bash df -h ``` 此命令会显示各分区的已用和可用空间[^1]。 - 如果发现某个分区接近满载,进一步查找具体的大文件: ```bash du -sh /* find / -type f -size +100M ``` 上述命令可以帮助找到占用了大量存储空间的文件[^2]。 --- #### 2. 检查 Inode 占用情况 如果磁盘仍有剩余空间但仍然报错,则可能是由于 Inode 被耗尽所致。 - 执行以下命令检查 Inode 的使用状态: ```bash df -i ``` 当 Inode 接近 100% 时,即使有未使用的磁盘空间也无法创建新文件。 - 处理方法:删除无用的小文件(如临时文件、日志碎片),释放 Inode。 --- #### 3. 配置定时监控任务 为了防止类似问题再次发生,可以通过 Crontab 设置定期发送磁盘使用报告的任务。 - 添加如下 Cron 表达式到计划任务列表中: ```bash crontab -e ``` 然后输入以下内容: ```cron 0 * * * * df -h | mail -s "Disk Usage Alert" your_email@example.com ``` 这将在每小时整点向指定邮箱发送当前磁盘使用状况的通知。 --- #### 4. 日志管理优化 长期运行的服务可能会生成大量的日志文件,这些文件容易占据过多的空间。 - 利用 Logrotate 工具配置自动轮转与清理策略: 编辑 `/etc/logrotate.conf` 文件或者单独的日志旋转脚本,定义保留周期以及压缩选项[^1]。 例如: ```logrotate /var/log/*.log { daily rotate 7 compress delaycompress missingok notifempty } ``` --- #### 5. Docker 特定场景处理 对于基于容器化环境的应用程序,“no space left on device”的根源也可能来自 Docker 存储层本身。 - 查询 Docker 当前资源消耗详情: ```bash docker system df ``` - 定位实际挂载路径: ```bash docker info | grep "Docker Root Dir" ``` 假如默认位置容量有限,考虑调整其根目录至其他具有更高余裕度的位置[^3]: 修改 `/etc/docker/daemon.json` 并重启服务即可生效: ```json { "data-root": "/mnt/newdisk/docker" } ``` --- ### 结论 综合以上措施,可以从多个角度有效应对 “No space left on device错误的发生及其潜在隐患。无论是常规服务器运维还是特定框架下的部署维护都适用相应的方法来保障系统的稳定性和可靠性。 --- 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值