centos服务器磁盘空间满了,无法进行文件操作

问题: 在linux环境下,用vi打开某文件时,提示Write error in swap file

原因:磁盘空间已满

解决:用df -h命令查看磁盘使用情况,删除该区块中无用的文件

常用命令

df -h:查看系统空间大小

du -h --max-depth=1:查看该目录空间占用

 du -sh *:查看该目录下所有文件及目录的大小

<think> 嗯,用户再次询问处理Linux服务器磁盘空间的方法,看来是遇到了实际的运维问题。 用户引用了两篇站内资料:第一篇提到磁盘空间不足时的软链接和LVM扩容方案;第二篇强调要找出大文件进行清理。结合之前对话历史,用户显然需要一套完整的解决方案。 从用户身份推测,可能是系统管理员或开发人员,正在紧急处理生产环境问题。ta的深层需求不仅是步骤罗列,更希望获得可操作的排查流程和风险规避建议。特别要注意两点:一是必须强调关键操作前的备份,避免数据丢失;二是需要区分不同场景的解决方案(如临时清理VS长期扩容)。 技术层面需要覆盖: 1 空间验证:先用df确认是否真,避免误判 2 定位罪魁祸首:重点推荐ncdu工具,比du更高效直观 3 清理策略:区分日志/缓存/核心文件的不同处理方式 4 高级方案:LVM扩容的适用条件和操作风险 考虑到用户可能处于焦虑状态,回答要把最紧急的清理步骤放在前面,同时用加粗强调⚠️危险操作。最后补充的"相关问题"特意加入日志轮询方案,因为这是实际运维中最常忽视的长期治理手段。 不过用户提供的引用[2]中提到"100%解决"的说法不够严谨,在正式回答中调整为"有效缓解"更妥当。另外补充了原文未提及的/tmp清理和apt缓存清理等实用技巧。 </think> 处理Linux服务器磁盘空间的问题需要系统化排查和针对性清理。以下是详细操作步骤及解决方案: --- ### **一、快速定位问题** 1. **确认磁盘使用率** ```bash df -h # 查看各分区使用情况 ``` 重点关注`Use%`列达到100%的分区(如`/dev/sda1`挂载到`/`) 2. **定位大文件/目录** ```bash du -sh /* 2>/dev/null # 查看根目录下各文件夹大小 du -xh --max-depth=1 / | sort -h # 深度1层排序 ``` - 若`/var`或`/home`较大,继续深入: ```bash du -xh --max-depth=1 /var | sort -h ``` --- ### **二、针对性清理方案** #### **场景1:日志文件过大(常见于/var/log)** ```bash # 查看并清理旧日志 journalctl --disk-usage # 检查Journal日志大小 journalctl --vacuum-time=7d # 删除7天前日志 # 清理应用日志(如Nginx/Apache) find /var/log -name "*.log" -size +100M -exec truncate -s 0 {} \; ``` > ⚠️ 慎用`rm`删除日志,推荐用`truncate -s 0`清空内容保留文件 #### **场景2:缓存文件堆积(/var/cache)** ```bash # 清理APT缓存(Ubuntu/Debian) apt clean && apt autoclean # 清理YUM缓存(CentOS/RHEL) yum clean all # 清理Docker无用数据 docker system prune -af ``` #### **场景3:用户文件占用(/home)** ```bash # 查找大文件(>500MB) find /home -type f -size +500M -exec ls -lh {} \; # 清理临时文件 rm -rf ~/.cache/* /tmp/* ``` #### **场景4:隐藏的已删除文件** ```bash # 检查被进程占用的已删除文件 lsof | grep deleted # 第二列显示PID kill -9 <PID> # 重启相关进程释放空间 ``` --- ### **三、长期解决方案** 1. **日志轮转(Logrotate)** 编辑`/etc/logrotate.conf`,为日志添加自动切割和压缩: ```conf /var/log/nginx/*.log { daily rotate 30 compress missingok notifempty } ``` 2. **挂载新磁盘(LVM动态扩容)** ```bash pvcreate /dev/sdb # 创建物理卷 vgextend vg_name /dev/sdb # 扩展卷组 lvextend -l +100%FREE /dev/vg_name/lv_name # 扩展逻辑卷 resize2fs /dev/vg_name/lv_name # 调整文件系统 ``` 3. **软链接迁移数据** ```bash mv /var/lib/mysql /big_disk/ # 迁移数据 ln -s /big_disk/mysql /var/lib/mysql # 创建软链接 ``` --- ### **四、预防措施** - **监控报警**:配置Prometheus+Alertmanager监控磁盘使用率 - **自动清理**:添加Cron任务定期清理缓存和临时文件 - **分区隔离**:将`/var`、`/home`等易增长目录单独分区 > 📌 **关键提示**:生产环境操作前**务必备份数据**!清理系统文件推荐使用`ncdu`可视化工具逐步检查:[^1][^2] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值