温馨提示×

centos系统缓存清理技巧

小樊
52
2025-06-28 15:14:43
栏目: 智能运维

在CentOS系统中,清理缓存可以帮助释放磁盘空间并提高系统性能。以下是一些常用的缓存清理技巧:

清理YUM/DNF缓存

  • 清理YUM缓存
    sudo yum clean all
    
    若使用的是CentOS 8及以上版本,可以使用以下命令清理DNF缓存:
    sudo dnf clean all
    
  • 清理APT缓存(适用于CentOS 8及更高版本):
    sudo apt-get clean
    

清理系统缓存

  • 清理文件系统缓存
    sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
    
    该命令会清除页缓存、目录项缓存和交换缓存。
  • 清理DNS缓存
    sudo systemd-resolve --flush-caches
    
    适用于CentOS 8及更高版本。

清理临时文件

临时文件通常存放在 /tmp 目录下,可以定期清理这些文件:

sudo rm -rf /tmp/*

请注意,这个命令会删除 /tmp 目录下的所有文件,请确保在运行前备份重要数据。

清理日志文件

日志文件会随着时间推移不断增大,可以使用 logrotate 工具定期清理和压缩旧的日志文件:

sudo journalctl --vacuum-time=7d

这通常是由cron作业定期执行的,但也可以手动运行。

清理特定应用程序缓存

  • Apache HTTP Server
    sudo rm -rf /var/cache/apache2/*
    
  • Nginx
    sudo rm -rf /var/cache/nginx/*
    
  • MySQL
    sudo systemctl stop mysqld
    sudo rm -rf /var/lib/mysql/*
    sudo rm -rf /tmp/*
    sudo systemctl start mysqld
    
  • PHP
    sudo rm -rf /tmp/*
    sudo rm -rf /var/lib/php/*
    
  • Redis
    sudo redis-cli FLUSHDB
    
    或清空所有数据库:
    sudo redis-cli FLUSHALL
    
  • Memcached
    echo 'flush_all' | nc localhost 11211
    

创建定时任务自动清理缓存

可以创建一个定时任务,定期执行缓存清理命令。例如,每两小时清理一次缓存的脚本:

#!/bin/bash
echo "开始清除缓存"
sync
sync
# 写入硬盘,防止数据丢失
sleep 10
echo 3 | sudo tee /proc/sys/vm/drop_caches

将上述脚本保存为 cleanCache.sh,然后添加到crontab中定时执行:

0 */2 * * * /path/to/cleanCache.sh

在执行任何清理操作之前,请务必备份重要数据,以防万一。清理缓存可能会导致某些应用程序重新加载数据,因此在执行之前请确保没有正在进行的重要任务。

0