0%

Linux 系统清理

在长期运行的 Linux 系统中,清理冗余文件可以释放磁盘空间并提升性能。以下是系统清理的详细步骤和注意事项:


一、清理系统日志

1. 手动清理日志文件

1
2
3
4
5
# 删除超过 30 天的旧日志(谨慎操作!)
sudo find /var/log -type f -name "*.log" -mtime +30 -delete

# 清空当前日志文件(保留文件句柄)
sudo truncate -s 0 /var/log/*.log

2. 管理 journald 日志(systemd 系统)

1
2
3
4
5
6
7
8
# 查看日志占用空间
journalctl --disk-usage

# 保留最近 100MB 日志
sudo journalctl --vacuum-size=100M

# 或保留最近 7 天日志
sudo journalctl --vacuum-time=7d

3. 配置日志轮转

编辑 /etc/logrotate.conf,调整轮转策略(如压缩旧日志、保留周期)。


二、清理旧内核(释放 /boot 空间)

1. 查看已安装的内核

1
2
3
4
5
# Debian/Ubuntu
dpkg --list | grep linux-image

# RHEL/CentOS/Oracle Linux
rpm -qa | grep kernel

2. 删除旧内核

1
2
3
4
5
# Debian/Ubuntu(保留当前内核)
sudo apt autoremove --purge

# RHEL/CentOS/Oracle Linux(需安装 `yum-utils`)
sudo package-cleanup --oldkernels --count=2

三、清理包管理器缓存

1. APT(Debian/Ubuntu)

1
2
sudo apt clean          # 清理下载的 .deb 文件
sudo apt autoremove # 删除无用依赖包

2. YUM/DNF(RHEL/CentOS/Oracle Linux)

1
2
sudo yum clean all      # 清理缓存
sudo yum autoremove # 删除无用依赖包

四、清理用户缓存和临时文件

1. 用户级缓存

1
2
3
4
5
# 清理当前用户的缓存
rm -rf ~/.cache/*

# 清理所有用户的缓存(谨慎!)
sudo find /home -type d -path "*/.cache/*" -delete

2. 系统临时文件

1
2
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

3. 内存缓存(可选)

1
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

五、查找并删除大文件

1. 查找大于 100MB 的文件

1
sudo find / -type f -size +100M -exec ls -lh {} \;

2. 定位占用最多的目录

1
sudo du -h / | sort -rh | head -n 20

六、清理未使用的软件和配置文件

1. 删除残留配置文件(Debian/Ubuntu)

1
sudo deborphan | xargs sudo apt purge -y

2. 清理 Snap 旧版本(Ubuntu)

1
sudo snap list --all | awk '/disabled/{print $1, $3}' | xargs -rn2 sudo snap remove

七、清理容器和虚拟化残留(如 Docker)

1
2
3
4
5
# 删除所有停止的容器
docker container prune

# 删除未被使用的镜像、卷和网络
docker system prune -a --volumes

八、自动化清理工具

1. 使用 logrotate 自动管理日志

编辑 /etc/logrotate.d/ 下的配置文件,例如:

1
2
3
4
5
6
7
8
9
/var/log/nginx/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 0640 www-data adm
}

2. 定时任务(Cron)

添加每月清理任务:

1
2
3
4
5
# 编辑 crontab
sudo crontab -e

# 添加以下内容(示例):
0 0 1 * * /usr/bin/apt autoremove -y

3. 工具推荐

  • **ncdu**:交互式磁盘分析工具。
  • **bleachbit**:图形化清理工具(支持 root 模式)。

注意事项

  1. 备份重要数据:清理前建议备份 /etc/home 等关键目录。
  2. 避免删除运行中的文件:不要直接删除 /proc/sys 或正在使用的日志。
  3. 生产环境谨慎操作:建议在低峰期清理,避免影响服务。

通过以上步骤,可以安全有效地清理长期运行的 Linux 系统。