虚拟主机硬盘告急?三步排查法拯救空间危机!紧急应对,三步排查解救虚拟主机硬盘空间危机
你是不是也遇到过这种情况:网站突然打不开,后台弹出"磁盘空间不足"的红色警告?别慌!今天手把手教你像老运维一样排查虚拟主机硬盘问题——哪怕你连命令行是啥都不知道,跟着做也能快速定位症结。毕竟硬盘就像仓库,堆满了货,网站这辆"快递车"可就跑不动了!
场景一:空间爆满的紧急抢救
症状:网站加载龟速,后台频繁报错"Disk Full"
三步急救法:
快速查占空间大户
连上SSH输入:df -hT
👉 看 Use% 列,超过90%的分区就是重灾区!
再输:du -sh /var/www/* | sort -rh | head -5
👉 立刻揪出前5个最占空间的目录(比如日志文件、上传的图片视频)秒删临时垃圾
清理缓存和临时文件(安全操作!):bash复制
# 删7天前的日志find /var/log -name "*.log" -mtime +7 -exec rm -f {} ;# 清空缓存目录rm -rf /tmp/*
数据库瘦身
登录数据库(如MySQL):sql复制
-- 优化所有表释放碎片空间mysqlcheck -o 数据库名 -u用户名 -p-- 清理回收站性质数据DELETE FROM wp_posts WHERE post_status='trash';
注:操作前务必备份!用
mysqldump
命令导出安全副本
场景二:给仓库扩容——添加新硬盘
适用情况:删文件只能缓一时,业务持续增长需加硬盘
保姆级操作流程(以VirtualBox为例):
虚拟机关机状态下点"设置"→"存储"→点击硬盘图标+号
→ 创建新虚拟盘(建议选VDI动态分配,不浪费空间)开机后让系统识别新硬盘
bash复制
# 刷新磁盘设备echo "- - -" > /sys/class/scsi_host/host0/scan# 查看新盘代号(通常是sdb/sdc)lsblk
分区→格式化→挂载一条龙
bash复制
# 分区(以sdb为例)fdisk /dev/sdb# 在交互界面按n创建分区→选p主分区→一路回车→按w保存# 格式化(ext4最通用)mkfs.ext4 /dev/sdb1# 挂载到指定目录mkdir /data # 新建仓库目录mount /dev/sdb1 /data
永久生效关键一步!
编辑/etc/fstab
文件,末尾添加:bash复制
/dev/sdb1 /data ext4 defaults 0 0
👉 否则重启后新硬盘"消失"!
场景三:预防性维护——让硬盘健康更持久
运维老鸟的私藏技巧:
每周自动体检:
bash复制
# 创建巡检脚本disk_check.shecho 'df -hT > /var/log/disk_report.log' >> disk_check.sh# 添加定时任务(每周一凌晨3点执行)crontab -e# 输入:0 3 * * 1 /root/disk_check.sh
敏感目录加"护栏":
bash复制
# 限制网站上传目录大小(防止用户狂传视频塞满盘)setquota -u www-data 500M 1G /home
磁盘性能优化:
- 用
iostat -dx 2
监控读写瓶颈 - SSD盘必做:编辑
/etc/fstab
,在挂载参数加noatime,discard
👉 减少擦写次数,寿命延长30%!
- 用
血泪教训:某客户没做限额,用户一夜上传800GB电影,直接宕机24小时
小编观点:硬盘管理不是等报警才动手!养成每月看df -h
的习惯,把/var/log
和/tmp
单独分区隔离风险,数据库设置自动清理规则(比如只保留6个月订单)——这些小事能让你半夜少接10个报警电话!