当前位置: 首页 > news >正文

宝塔面板定时任务目录清理日志-定时检测阈值清理

#!/usr/bin/env bash
#
# 检测 /www/server/cron 目录总占用,超过阈值则清空匹配规则的日志文件内容(不删文件)。
#
# 注意:宝塔该目录下常有「哈希名」无后缀文件,实为计划任务脚本,切勿清空。
#       默认只处理 *.log、nohup.out;若你的日志无后缀,请改 LOG_FIND_OPTS 或下面 find 规则。
#
# 用法:chmod +x clean_baota_cron_logs.sh
#       ./clean_baota_cron_logs.sh
# 可加入 crontab:0 3 * * * /path/to/clean_baota_cron_logs.sh >> /var/log/clean_baota_cron_logs.log 2>&1set -uo pipefailTARGET_DIR="${TARGET_DIR:-/www/server/cron}"
# 阈值:10GiB(按 1024 进制,与 du -sk 一致)
THRESHOLD_KB="${THRESHOLD_KB:-$((10 * 1024 * 1024))}"log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; }if [[ ! -d "$TARGET_DIR" ]]; thenlog "目录不存在,退出: $TARGET_DIR"exit 0
fi# 当前目录总占用(KB,与 du 默认一致)
SIZE_KB=$(du -sk "$TARGET_DIR" 2>/dev/null | awk '{print $1}')
if [[ -z "$SIZE_KB" || ! "$SIZE_KB" =~ ^[0-9]+$ ]]; thenlog "无法获取目录大小: $TARGET_DIR"exit 1
filog "目录: $TARGET_DIR  当前占用: ${SIZE_KB} KB  阈值: ${THRESHOLD_KB} KB"if (( SIZE_KB <= THRESHOLD_KB )); thenlog "未超过阈值,不处理。"exit 0
filog "超过阈值,开始清空日志文件内容(保留空文件)…"# 仅匹配常见日志文件名;如需追加规则,在下面 find 中增加 -o -name 'xxx'
emptied=0
while IFS= read -r -d '' f; doif [[ -f "$f" && -w "$f" ]]; then: >"$f"# 若系统有 truncate,也可用: truncate -s 0 -- "$f"emptied=$((emptied + 1))fi
done < <(find "$TARGET_DIR" -type f \( -name '*.log' -o -name 'nohup.out' \) -print0 2>/dev/null)log "已清空 ${emptied} 个文件(*.log / nohup.out)。"
log "完成后占用: $(du -sk "$TARGET_DIR" 2>/dev/null | awk '{print $1}') KB"
exit 0

 

http://www.jsqmd.com/news/665063/

相关文章:

  • Phi-3-mini-4k-instruct-gguf一文详解:llama.cpp推理引擎在中文场景的优化点
  • 实时电价机制下交直流混合微网优化运行方法(Matlab代码实现)
  • 3分钟解决C盘爆红!WindowsCleaner:专治Windows系统卡顿的智能清理专家
  • 06 论火箭回收的逆向思维落地方法 技术篇:火箭回收核心系统逆向推导,分系统技术指标闭环
  • Phi-3-Mini-128K实战案例:法律合同长文本分析+关键条款提取效果展示
  • 碧蓝航线自动化脚本Alas:7x24小时全自动托管方案详解 [特殊字符]
  • WeChatExporter:彻底解决微信聊天记录永久保存难题
  • 为什么 ConcurrentHashMap 1.8 重新用回了笨重的 synchronized 锁?
  • DeOldify在中小学美育教学中的应用:学生自主为历史课本插图上色
  • 魔兽争霸3辅助工具WarcraftHelper:让经典游戏在现代电脑上焕发新生
  • 如何快速掌握小红书内容采集:XHS-Downloader完整使用指南
  • AzurLaneAutoScript:碧蓝航线全自动脚本的技术架构深度解析
  • Arch Linux 装完N卡驱动就黑屏?别慌,手把手教你排查和修复(GTX 1050亲测)
  • EldenRingFPSUnlockAndMore:释放《艾尔登法环》全部潜力的5大实用功能
  • 教育领域应用:基于LFM2.5-1.2B-Thinking-GGUF的C语言编程题目自动解题与讲解
  • Z-Image-Turbo_Sugar脸部Lora多场景落地:电商模特图/虚拟偶像/内容配图
  • 告别连线噩梦:用SV的interface和modport重构你的UVM验证平台连接
  • QWEN-AUDIO进阶技巧:情感指令怎么写?批量生成如何实现?
  • MongoDB广告点击追踪如何建模_点击事件聚合与去重记录
  • 解锁Blender与虚幻引擎的桥梁:PSK/PSA插件完全指南
  • 3个步骤打造你的私人离线图书馆:番茄小说下载器完全指南
  • 手把手教你用AnythingtoRealCharacters2511:动漫角色一键变真人照片
  • GLM-OCR与数据结构优化:提升批量图片处理效率的队列设计
  • 航顺HK32F030MF4P6实战:SWD引脚复用成普通IO或ADC的完整配置流程(附代码)
  • 2026靠谱的开锁培训机构推荐,想学保险柜开锁合规培训哪里找 - mypinpai
  • 从毫米波信号到生命体征:一种基于HHT的心率呼吸率分离算法实践
  • 终极百度网盘直链解析指南:免费实现10倍下载速度
  • DS4Windows终极指南:3步解决PS手柄在Windows上的兼容性问题
  • AI手势识别与追踪:5分钟快速部署,体验彩虹骨骼可视化
  • Windows Cleaner终极指南:免费开源工具彻底解决C盘爆红和电脑卡顿问题