0.0.1
This commit is contained in:
@@ -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文件,请先备份
|
||||
|
||||
@@ -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
|
||||
)
|
||||
@@ -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}")
|
||||
Reference in New Issue
Block a user