定期删除日志脚本
import os
import datetime
log_directory = "/path/to/logs" # 日志目录的路径
days_to_keep = 90 # 需要保留的天数
计算要删除的日期
target_date = datetime.datetime.now() - datetime.timedelta(days=days_to_keep)
target_date = target_date.strftime("%Y%m%d")
遍历日志目录下的所有文件
for root, dirs, files in os.walk(log_directory):
for file in files:
if file.endswith(".log"):
file_path = os.path.join(root, file)
# 获取文件的修改时间
modified_time = os.path.getmtime(file_path)
modified_time = datetime.datetime.fromtimestamp(modified_time)
modified_date = modified_time.strftime("%Y%m%d")
# 如果文件的修改日期在目标日期之前,则删除该文件
if modified_date < target_date:
os.remove(file_path)
print(f"删除文件: {file_path}")
!/bin/bash
log_directory="/path/to/logs" # 日志目录的路径
days_to_keep=90 # 需要保留的天数
计算要删除的日期
target_date=$(date -d "-${days_to_keep} days" +%Y%m%d)
构建find命令的参数
find_args="-type f -name '*.log' -mtime +0 -printf '%T+ %p\n'"
find_cmd="find $log_directory $find_args"
获取需要删除的日志文件列表
log_files=$(eval $find_cmd | grep "^$(date -d "${days_to_keep} days ago" +%Y%m%d) " | awk '{print $2}')
删除指定的日志文件
for log_file in $log_files; do
rm "$log_file"
echo "删除文件: $log_file"
done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构