Linux 系统缓存清理
内存缓存清理
#!/bin/bash # clean_mem_cache.sh # 清理PageCache sync && echo 1 > /proc/sys/vm/drop_caches # 清理dentries和inodes sync && echo 2 > /proc/sys/vm/drop_caches # 清理所有缓存 sync && echo 3 > /proc/sys/vm/drop_caches echo "内存缓存清理完成"
设置定时任务
# 每天凌晨3点执行 0 3 * * * /usr/local/bin/clean_mem_cache.sh # 每6小时执行一次 0 */6 * * * /usr/local/bin/clean_mem_cache.sh
Redis 缓存清理
Redis 过期键清理脚本
#!/usr/bin/env python3
# clean_redis_cache.py
import redis
import time
def clean_redis_cache():
# 连接Redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 方式1:清理所有缓存
r.flushdb()
# 方式2:删除特定模式的键
pattern = "session:*" # 匹配以session:开头的键
cursor = 0
while True:
cursor, keys = r.scan(cursor, match=pattern, count=100)
if keys:
r.delete(*keys)
if cursor == 0:
break
# 方式3:清理过期键
cursor = 0
while True:
cursor, keys = r.scan(cursor, count=100)
for key in keys:
# 检查TTL,如果已过期则删除
if r.ttl(key) == -2: # 键不存在
continue
elif r.ttl(key) == -1: # 没有设置过期时间
if should_delete(key): # 自定义删除条件
r.delete(key)
if cursor == 0:
break
def should_delete(key):
# 自定义删除逻辑
# 删除特定前缀的键
return key.startswith(b'temp:') or key.startswith(b'cache:')
if __name__ == "__main__":
clean_redis_cache()
Nginx 缓存清理
Nginx 缓存清除脚本
#!/bin/bash
# clean_nginx_cache.sh
CACHE_PATH="/var/cache/nginx"
PURGE_PATH="/path/to/nginx-cache-purge"
echo "开始清理Nginx缓存..."
# 方法1:直接删除缓存文件
if [ -d "$CACHE_PATH" ]; then
find $CACHE_PATH -type f -mtime +7 -delete # 删除7天前的缓存
find $CACHE_PATH -type d -empty -delete # 删除空目录
echo "Nginx缓存清理完成"
fi
# 方法2:使用缓存清除模块(需要ngx_cache_purge模块)
curl -X PURGE http://localhost/cache/purge/
# 方法3:重新加载nginx配置
nginx -s reload
应用程序缓存清理
PHP 缓存清理
#!/bin/bash
# clean_php_cache.sh
# 清理OPcache
if [ -f /usr/local/php/var/run/php-fpm.pid ]; then
kill -SIGUSR2 $(cat /usr/local/php/var/run/php-fpm.pid)
fi
# 清理PHP会话文件
find /tmp -name "sess_*" -mtime +2 -delete
# 清理应用缓存目录
APP_CACHE_DIRS=(
"/var/www/html/storage/cache"
"/var/www/html/storage/framework/cache"
"/var/www/html/bootstrap/cache"
)
for dir in "${APP_CACHE_DIRS[@]}"; do
if [ -d "$dir" ]; then
rm -rf $dir/*
echo "已清理 $dir"
fi
done
Docker 缓存清理
Docker 清理脚本
#!/bin/bash # clean_docker_cache.sh echo "开始清理Docker缓存..." # 删除未使用的容器 docker container prune -f # 删除未使用的镜像 docker image prune -a -f # 删除未使用的网络 docker network prune -f # 删除未使用的卷 docker volume prune -f # 清理系统所有未使用资源 docker system prune -a --volumes -f # 清理构建缓存 docker builder prune -f echo "Docker缓存清理完成"
综合缓存清理脚本
#!/bin/bash
# comprehensive_cache_clean.sh
LOG_FILE="/var/log/cache_clean.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
log_message() {
echo "[$DATE] $1" >> $LOG_FILE
echo "[$DATE] $1"
}
clean_memory_cache() {
log_message "开始清理内存缓存..."
sync
echo 3 > /proc/sys/vm/drop_caches
log_message "内存缓存清理完成"
}
clean_application_cache() {
log_message "开始清理应用缓存..."
# 清理临时文件
find /tmp -type f -mtime +1 -delete
# 清理日志文件
find /var/log -name "*.log" -mtime +30 -delete
# 清理会话文件
find /var/lib/php/sessions -type f -mtime +1 -delete
log_message "应用缓存清理完成"
}
clean_package_cache() {
log_message "开始清理包管理器缓存..."
# Ubuntu/Debian
if command -v apt-get &> /dev/null; then
apt-get clean
apt-get autoclean
apt-get autoremove -y
fi
# CentOS/RHEL
if command -v yum &> /dev/null; then
yum clean all
fi
log_message "包管理器缓存清理完成"
}
# 执行清理
clean_memory_cache
clean_application_cache
clean_package_cache
log_message "所有缓存清理完成"
智能缓存清理(带阈值)
#!/bin/bash
# smart_cache_clean.sh
# 设置阈值(百分比)
MEM_THRESHOLD=80
DISK_THRESHOLD=85
# 检查内存使用率
mem_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}' | cut -d. -f1)
# 检查磁盘使用率
disk_usage=$(df -h / | tail -1 | awk '{print $5}' | cut -d% -f1)
log_message() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
if [ $mem_usage -gt $MEM_THRESHOLD ] || [ $disk_usage -gt $DISK_THRESHOLD ]; then
log_message "系统资源使用率过高(内存: ${mem_usage}%, 磁盘: ${disk_usage}%)"
log_message "开始执行缓存清理..."
# 清理内存缓存
sync && echo 3 > /proc/sys/vm/drop_caches
# 清理磁盘缓存
find /var/cache -type f -atime +7 -delete 2>/dev/null
log_message "缓存清理完成"
else
log_message "系统资源使用正常(内存: ${mem_usage}%, 磁盘: ${disk_usage}%),无需清理"
fi
使用建议
- 设置定时任务:
# crontab -e 添加定时任务 # 每天凌晨2点执行 0 2 * * * /usr/local/bin/clean_mem_cache.sh
每4小时执行一次
0 /4 /usr/local/bin/clean_redis_cache.py

2. **权限设置**:
```bash
chmod +x /usr/local/bin/*.sh
chmod +x /usr/local/bin/*.py
-
日志记录:始终添加日志记录,便于排查问题
-
测试先行:先在测试环境运行,确认无误后再部署到生产环境
-
备份重要数据:清理前确认缓存内容是否可安全删除
请根据实际需求选择合适的脚本,并适当调整参数。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播