惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
B
Blog
F
Fortinet All Blogs
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
A
About on SuperTechFans
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog
B
Blog RSS Feed

博客园 - 温柔的风

Mysql8 允许远程登录 【uni-app】申请高德地图key,封装map.js,实现H5、iOS、Android通过getlocation获取地图定位信息(摘) centos安装atop工具,检测服务器情况 mysql 8.0查看正在执行的事务锁 webman 安装gateway实现socket https站点websocket连接失败问题 layui table 表格过滤tableFilter 谷歌浏览器无法播放音频mp3怎么办? uniapp下实现心跳检测服务端并且结合生命周期自动再次连接绑定客户端 git push Git远端意外挂断 php对接阿里通义AI模型,简单实现浏览器端以sse方式输出 Layer.js最大化最小化监听 Linux磁盘阈值及内存阈值检测脚本 fastadmin控制列显示与隐藏 基于uniapp的全局监听websocket连接及接收服务端消息 fastadmin自定义主题并随切换变更iframe颜色 fastadmin-PHP-导出少量数据PhpOffice以及百万级别数据csv压缩 Macbook M1下安装Kibana Macbook M1下安装elasticsearch Fastadmin表格的列头对齐以及内容对齐设定方式
宝塔面板定时任务目录清理日志-定时检测阈值清理
温柔的风 · 2026-04-19 · via 博客园 - 温柔的风
#!/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>&1

set -uo pipefail

TARGET_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" ]]; then
  log "目录不存在,退出: $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]+$ ]]; then
  log "无法获取目录大小: $TARGET_DIR"
  exit 1
fi

log "目录: $TARGET_DIR  当前占用: ${SIZE_KB} KB  阈值: ${THRESHOLD_KB} KB"

if (( SIZE_KB <= THRESHOLD_KB )); then
  log "未超过阈值,不处理。"
  exit 0
fi

log "超过阈值,开始清空日志文件内容(保留空文件)…"

# 仅匹配常见日志文件名;如需追加规则,在下面 find 中增加 -o -name 'xxx'
emptied=0
while IFS= read -r -d '' f; do
  if [[ -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