资源清理脚本怎么写?

wen 实用脚本 53

本文目录导读:

资源清理脚本怎么写?

  1. 临时文件清理脚本 (Windows - Batch)
  2. Docker 资源清理脚本 (Linux/Mac)
  3. Linux 系统日志清理脚本
  4. Node.js 项目清理脚本
  5. 通用 Python 缓存清理脚本
  6. 使用建议

我来介绍几种常见的资源清理脚本写法,根据不同的清理需求选择:

临时文件清理脚本 (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()

使用建议

  1. 安全第一:在运行清理脚本前,建议先备份重要数据
  2. 测试环境:先在测试环境运行,确认无误后再在生产环境使用
  3. 权限设置:Linux 脚本需要添加执行权限:
    chmod +x script.sh
  4. 定时任务:可以配合 crontab 实现自动清理:
    # 每周日凌晨 2点清理
    0 2 * * 0 /path/to/cleanup.sh

根据你的具体需求选择合适的脚本进行修改和扩展。

抱歉,评论功能暂时关闭!