本文目录导读:

我来介绍几种常见的资源清理脚本写法,根据不同的清理需求选择:
临时文件清理脚本 (Windows - Batch)
@echo off系统临时文件清理工具 color 0A echo ==================================== echo 临时文件清理脚本 v1.0 echo ==================================== echo. :: 清理 Windows 临时文件 echo [1/5] 清理 Windows 临时文件... del /f /s /q "%WINDIR%\Temp\*.*" 2>nul rd /s /q "%WINDIR%\Temp" 2>nul md "%WINDIR%\Temp" :: 清理用户临时文件 echo [2/5] 清理用户临时文件... del /f /s /q "%TEMP%\*.*" 2>nul rd /s /q "%TEMP%" 2>nul md "%TEMP%" :: 清理回收站 echo [3/5] 清理回收站... rd /s /q C:\$Recycle.bin 2>nul :: 清理预读取文件 echo [4/5] 清理预读取文件... del /f /s /q "%WINDIR%\Prefetch\*.*" 2>nul :: 清理最近使用的文件 echo [5/5] 清理最近使用的文件... del /f /s /q "%USERPROFILE%\Recent\*.*" 2>nul echo. echo ==================================== echo 清理完成! echo ==================================== pause
Docker 资源清理脚本 (Linux/Mac)
#!/bin/bash echo "🚀 Docker 资源清理脚本" echo "========================" # 清理由使用中的容器 echo "📦 停止所有运行中的容器..." docker stop $(docker ps -q) 2>/dev/null # 删除所有容器 echo "🗑️ 删除所有容器..." docker rm $(docker ps -a -q) 2>/dev/null # 删除所有未使用的镜像 echo "🖼️ 删除未使用的镜像..." docker image prune -a -f # 删除未使用的卷 echo "💿 删除未使用的卷..." docker volume prune -f # 删除构建缓存 echo "🔧 清理构建缓存..." docker builder prune -a -f # 显示清理后状态 echo "📊 清理后状态:" docker system df echo "✅ 清理完成!"
Linux 系统日志清理脚本
#!/bin/bash
# 日志清理脚本
LOG_DIR="/var/log"
DAYS_TO_KEEP=7
echo "🔍 开始清理系统日志..."
# 清理 journalctl 日志
if command -v journalctl &> /dev/null; then
echo "📝 清理 journal 日志(保留最近 $DAYS_TO_KEEP 天)..."
journalctl --vacuum-time=${DAYS_TO_KEEP}d
fi
# 清理旧的日志文件
echo "📄 清理超过 $DAYS_TO_KEEP 天的日志文件..."
find $LOG_DIR -name "*.log" -type f -mtime +$DAYS_TO_KEEP -delete
find $LOG_DIR -name "*.gz" -type f -mtime +$DAYS_TO_KEEP -delete
# 清理旧的压缩日志
echo "🗜️ 清理旧的压缩日志..."
find $LOG_DIR -name "*.gz" -type f -exec rm -f {} \;
# 日志轮转
echo "🔄 执行日志轮转..."
logrotate -f /etc/logrotate.conf 2>/dev/null
# 显示磁盘使用情况
echo "💾 清理后的磁盘使用情况:"
df -h $LOG_DIR
echo "✅ 日志清理完成!"
Node.js 项目清理脚本
#!/bin/bash
echo "🧹 Node.js 项目清理工具"
echo "========================"
# 清理 node_modules
echo "📦 清理 node_modules..."
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
# 清理 lock 文件
echo "🔒 清理 lock 文件..."
find . -name "package-lock.json" -type f -delete
find . -name "yarn.lock" -type f -delete
# 清理 build 文件夹
echo "🏗️ 清理 build 文件夹..."
find . -name "dist" -type d -prune -exec rm -rf '{}' +
find . -name "build" -type d -prune -exec rm -rf '{}' +
find . -name ".next" -type d -prune -exec rm -rf '{}' +
# 清理缓存
echo "💨 清理缓存..."
find . -name ".cache" -type d -prune -exec rm -rf '{}' +
# 清理日志
echo "📋 清理日志文件..."
find . -name "npm-debug.log*" -type f -delete
find . -name "yarn-error.log" -type f -delete
find . -name "*.log" -type f -size +1M -delete
echo "✅ 清理完成!"
通用 Python 缓存清理脚本
#!/usr/bin/env python3
"""
Python 项目缓存清理工具
"""
import os
import shutil
from pathlib import Path
def clean_python_cache():
"""清理 Python 缓存文件"""
print("🐍 Python 缓存清理工具")
print("========================")
# 清理 __pycache__ 目录
print("🗑️ 清理 __pycache__ 目录...")
for pycache in Path(".").rglob("__pycache__"):
if pycache.is_dir():
shutil.rmtree(pycache)
print(f" ✓ 删除: {pycache}")
# 清理 .pyc 文件
print("🗑️ 清理 .pyc 文件...")
for pyc in Path(".").rglob("*.pyc"):
pyc.unlink(missing_ok=True)
print(f" ✓ 删除: {pyc}")
# 清理 .egg-info 目录
print("🥚 清理 egg-info 目录...")
for egg_info in Path(".").rglob("*.egg-info"):
if egg_info.is_dir():
shutil.rmtree(egg_info)
print(f" ✓ 删除: {egg_info}")
# 清理 .mypy_cache
print("📝 清理 mypy 缓存...")
mypy_cache = Path(".mypy_cache")
if mypy_cache.exists():
shutil.rmtree(mypy_cache)
print(" ✓ 删除 .mypy_cache")
# 清理 .pytest_cache
print("🧪 清理 pytest 缓存...")
pytest_cache = Path(".pytest_cache")
if pytest_cache.exists():
shutil.rmtree(pytest_cache)
print(" ✓ 删除 .pytest_cache")
# 显示清理结果
print("\n📊 清理结果:")
total_size = 0
for path in Path(".").rglob("*"):
if path.is_file():
total_size += path.stat().st_size
print(f" 当前项目大小: {total_size / 1024 / 1024:.2f} MB")
print("✅ 清理完成!")
if __name__ == "__main__":
clean_python_cache()
使用建议
- 安全第一:在运行清理脚本前,建议先备份重要数据
- 测试环境:先在测试环境运行,确认无误后再在生产环境使用
- 权限设置:Linux 脚本需要添加执行权限:
chmod +x script.sh
- 定时任务:可以配合 crontab 实现自动清理:
# 每周日凌晨 2点清理 0 2 * * 0 /path/to/cleanup.sh
根据你的具体需求选择合适的脚本进行修改和扩展。