This commit is contained in:
2025-01-15 17:57:28 +08:00
parent f1202a763c
commit 2c1923e844
3 changed files with 110 additions and 1 deletions
+47 -1
View File
@@ -1,2 +1,48 @@
# CLEAN_EVERYTHING
# 日志清理工具
## 功能描述
本工具用于自动清理指定目录及其子目录下的所有.log文件,并记录清理操作。
## 文件说明
- `clean_logs.py`: 主脚本文件
- `clean_logs.bat`: Windows批处理文件
- `clean_logs_history.log`: 自动生成的清理记录日志
## 使用方法
### 1. 配置
1. 使用文本编辑器打开`clean_logs.py`
2. 找到文件顶部的`TARGET_DIR`变量
3. 将其值修改为实际要清理的目录路径,例如:
```python
TARGET_DIR = "e:/path/to/your/logs"
```
### 2. 运行方式
- **Windows系统**
1. 双击`clean_logs.bat`文件
2. 脚本将自动执行,完成后会显示结果
- **其他系统**
1. 打开终端
2. 运行命令:
```bash
python clean_logs.py
```
## 运行效果
1. 脚本将:
- 递归清理指定目录及其子目录下的所有.log文件
- 在脚本所在目录生成`clean_logs_history.log`文件
- 自动清理超过7天的日志记录
2. 每次运行后:
- 终端会显示删除的文件路径
- 清理记录会追加到`clean_logs_history.log`
- 如果目录无效或Python未安装,会显示错误信息
## 注意事项
1. 请确保Python已安装并添加到系统PATH
2. 清理操作不可逆,请谨慎使用
3. 日志记录文件最多保留7天
4. 如果目标目录包含重要.log文件,请先备份
+18
View File
@@ -0,0 +1,18 @@
@echo off
REM 自动查找Python解释器
where python >nul 2>&1
if %errorlevel% neq 0 (
echo 未找到Python解释器,请确保Python已安装并添加到系统PATH
pause
exit /b 1
)
REM 执行日志清理脚本
python "%~dp0clean_logs.py"
REM 如果执行成功则暂停显示结果
if %errorlevel% equ 0 (
echo.
echo 日志清理完成!
pause
)
+45
View File
@@ -0,0 +1,45 @@
import os
import time
from datetime import datetime, timedelta
# 用户可以在此处修改要清理的目录
TARGET_DIR = "e:/path/to/your/logs" # 请将此路径修改为实际要清理的目录
def clean_log_files(directory):
# 获取脚本所在目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 创建日志文件路径
log_file = os.path.join(script_dir, 'clean_logs_history.log')
# 清理超过7天的日志记录
if os.path.exists(log_file):
with open(log_file, 'r+') as f:
lines = f.readlines()
f.seek(0)
for line in lines:
log_time_str = line.split(' - ')[0]
log_time = datetime.strptime(log_time_str, '%Y-%m-%d %H:%M:%S')
if datetime.now() - log_time <= timedelta(days=7):
f.write(line)
f.truncate()
# 遍历目录并删除.log文件
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.log'):
file_path = os.path.join(root, file)
try:
os.remove(file_path)
# 记录删除操作
with open(log_file, 'a') as f:
f.write(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - Deleted: {file_path}\n")
print(f"Deleted: {file_path}")
except Exception as e:
print(f"Error deleting {file_path}: {e}")
if __name__ == "__main__":
if os.path.isdir(TARGET_DIR):
clean_log_files(TARGET_DIR)
print("清理完成")
else:
print(f"无效的目录路径: {TARGET_DIR}")