三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

如何通过命令行深度清理磁盘?

美国、香港服务器

如何通过命令行深度清理磁盘?

09-10   来源:

通过命令行深度清理磁盘需要精准定位大文件、冗余数据和系统垃圾,同时避免误删关键文件。以下是适用于 Linux 系统(以 Ubuntu 24.04 为例)的深度清理方案,按「安全性从高到低」排序,兼顾彻底性和风险控制:
一、安全基础清理(无风险,优先执行)
这些操作针对系统自动生成的冗余文件,清理后不影响系统运行。
1. 清理 APT 包管理缓存
系统会缓存下载的安装包(.deb文件),安装后可安全删除:
 
bash
# 清理所有缓存的安装包(彻底释放空间)
sudo apt clean
 
# 清理不再需要的依赖包(软件卸载后残留的依赖)
sudo apt autoremove -y  # -y 自动确认删除
 
# 清理部分残留配置文件(谨慎,仅删除确定无用的)
sudo apt purge $(dpkg -l | grep "^rc" | awk "{print $2}")
 
dpkg -l | grep "^rc" 列出已卸载但残留配置文件的软件,purge 会彻底删除这些配置。
2. 清理系统日志文件
/var/log 目录存储系统和服务日志,旧日志可安全删除:
 
bash
# 查看日志目录占用
sudo du -sh /var/log/*
 
# 删除30天前的.log文件(保留近期日志用于排查问题)
sudo find /var/log -type f -name "*.log" -mtime +30 -delete
 
# 删除压缩的旧日志(如.log.1.gz、.log.2.bz2等)
sudo find /var/log -type f -name "*.log.*" -delete
 
# 清理journalctl日志(系统日志服务,可保留2周内的)
sudo journalctl --vacuum-time=2weeks
3. 清理临时文件
系统临时目录 /tmp 和用户缓存目录会积累临时文件,重启后自动清空,手动清理无风险:
 
bash
# 清理/tmp目录(当前未被使用的临时文件)
sudo rm -rf /tmp/*
 
# 清理用户缓存(如浏览器缓存、软件临时文件)
rm -rf ~/.cache/*  # ~ 表示当前用户目录,非root用户无需sudo
二、深度分析与清理大文件 / 目录(需判断风险)
通过命令定位占用空间最大的文件和目录,针对性清理(重点关注非系统目录,如 /www、/home 等)。
1. 定位大目录(找出空间占用源头)
bash
# 查看根分区下各目录占用(按大小排序,单位GB/MB)
sudo du -h --max-depth=1 / | sort -hr
 
# 深入分析占用最高的目录(例如/www)
sudo du -h --max-depth=1 /www | sort -hr
 
# 定位单个大文件(查找1GB以上的文件)
sudo find / -type f -size +1G -exec du -h {} \;  # / 表示全系统搜索,耗时较长
2. 清理常见大文件来源
根据上一步的结果,针对性处理以下场景:
 
网站 / 应用冗余文件(如 /www 目录):
bash
# 删除网站旧备份(假设备份在/www/backup,保留3个月内的)
sudo find /www/backup -type f -mtime +90 -delete
 
# 清理网站上传目录的无用大文件(如过期视频、测试文件)
# 先确认文件路径:sudo du -h /www/wwwroot/xxx.com/uploads/*
sudo rm -rf /www/wwwroot/xxx.com/uploads/old_videos/  # 替换为实际路径
 
数据库日志与临时文件:
bash
# MySQL/MariaDB的慢查询日志(若过大)
sudo rm -f /var/log/mysql/mysql-slow.log  # 删除后需重启MySQL:sudo systemctl restart mysql
 
# PostgreSQL的WAL日志(若未自动清理)
sudo pg_archivecleanup /var/lib/postgresql/16/main/pg_wal/  # 替换为实际版本路径
 
Docker 冗余(若使用 Docker):
bash
# 清理停止的容器、无用镜像、缓存数据(谨慎,会删除未使用的资源)
sudo docker system prune -a -f  # -a 包括未使用的镜像,-f 强制执行
 
# 清理Docker卷(未关联容器的卷)
sudo docker volume prune -f
 
用户上传的大文件(如 /home 目录):
bash
# 查找用户目录下100MB以上的文件
sudo find /home -type f -size +100M -exec du -h {} \;
# 确认无用后删除:sudo rm -f /home/user/large_file.iso
 
三、高级清理(谨慎操作,针对特殊场景)
以下操作针对特定系统组件,误删可能影响服务,需明确用途后执行。
1. 清理 PHP 会话文件
PHP 会话文件(默认存于 /var/lib/php/sessions)若长期不清理,会占用大量 inode(而非磁盘空间):
 
bash
# 查看会话文件数量
ls -l /var/lib/php/sessions | wc -l
 
# 删除24小时前的会话文件(不影响当前登录用户)
sudo find /var/lib/php/sessions -type f -mtime +1 -delete
2. 清理邮件队列(若未配置邮件服务)
未使用邮件服务时,/var/spool/mail 和 /var/spool/postfix 可能积累垃圾邮件:
 
bash
# 清理用户邮件
sudo rm -rf /var/spool/mail/*
 
# 清理Postfix邮件队列
sudo postsuper -d ALL  # 仅当确认无需邮件服务时执行
3. 压缩或迁移大日志文件
对于需要保留但占用空间大的日志(如访问量极高的网站日志),可压缩后归档:
 
bash
# 压缩旧日志(保留.gz文件,删除原文件)
gzip /var/log/nginx/access.log.1  # 压缩后变为access.log.1.gz
 
# 迁移大文件到外部存储(如临时挂载的硬盘)
sudo mv /www/large_database.sql /mnt/external_drive/  # 替换为实际路径
四、清理前的必做事项(避免数据丢失)
备份关键数据:清理前备份网站目录(/www/wwwroot)、数据库(mysqldump 或宝塔备份)到外部存储。
确认文件用途:删除文件前,用 cat 文件名 查看内容,或 file 文件名 判断文件类型,避免误删配置文件(如 /etc 下的文件)。
避免删除系统核心文件:以下目录绝对不能直接删除:
/bin、/sbin、/lib、/lib64(系统命令和库文件)
/boot(启动文件,删除会导致无法开机)
/etc(系统配置文件,如网络、用户配置)
分步执行:不要一次性执行大量删除命令,先清理一部分,确认系统正常后再继续。
总结
深度清理的核心逻辑是:先安全清理系统冗余 → 定位大文件 / 目录 → 针对性删除无用数据。通过 du、find 等命令精准定位空间占用源头,结合业务场景判断文件是否可删,既能最大化释放空间,又能避免系统风险。清理后建议执行 df -h 验证空间释放效果。

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:如何使用ncdu进行磁盘空间分析和清理? 下一篇:如何清理磁盘以释放更多空间?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)