清理 systemd journal 日志(保留 7 天)
清理 /var/log 的旧日志压缩文件
清空日志内容但不删文件(防止服务报错)
清理包管理器缓存(apt 或 yum)
清理 /tmp 和 /var/tmp,排除 socket 和其他特殊文件
宝塔各类日志清理(保留 5 天)
自动检测并重启 MySQL 和 Nginx(验证 Nginx 配置是否成功)
#!/bin/bash
echo "======== 开始清理系统与宝塔日志 ========"
# [1] 清理 systemd journal 日志(保留最近 7 天)
echo "[1/8] 清理 systemd journal 日志(保留7天)..."
journalctl --vacuum-time=7d
# [2] 清理 /var/log 下的旧日志压缩文件
echo "[2/8] 清理 /var/log 中的旧日志压缩文件..."
find /var/log -type f \( -name "*.gz" -o -name "*.1" -o -name "*.old" \) -exec rm -f {} \;
# [3] 清空部分系统日志内容(不删除文件)
echo "[3/8] 清空部分系统日志内容(不删除文件)..."
: > /var/log/wtmp
: > /var/log/btmp
: > /var/log/lastlog
: > /var/log/secure
: > /var/log/messages
# [4] 清理包管理器缓存
echo "[4/8] 清理包管理器缓存..."
if command -v apt-get &> /dev/null; then
apt-get clean && apt-get autoclean
elif command -v yum &> /dev/null; then
yum clean all
fi
# [5] 清理临时目录(只删普通文件和目录,排除 socket、管道等)
echo "[5/8] 清理 /tmp 和 /var/tmp 中的临时文件(排除 socket)..."
find /tmp -mindepth 1 \( -type f -o -type d \) -exec rm -rf {} +
find /var/tmp -mindepth 1 \( -type f -o -type d \) -exec rm -rf {} +
# [6] 清理宝塔面板日志
echo "[6/8] 清理宝塔面板日志(保留5天)..."
find /www/server/panel/logs/ -type f -name "*.log*" -mtime +5 -exec rm -f {} \;
# [7] 清理网站访问日志
echo "[7/8] 清理网站访问日志(保留5天)..."
find /www/wwwlogs/ -type f -name "*.log*" -mtime +5 -exec rm -f {} \;
# [8] 清理 Nginx 和计划任务日志
echo "[8/8] 清理 Nginx 和计划任务日志(保留5天)..."
find /www/server/nginx/logs/ -type f -name "*.log*" -mtime +5 -exec rm -f {} \;
find /www/server/cron/ -type f -name "*.log" -mtime +5 -exec rm -f {} \;
# 释放缓存
sync; echo 3 > /proc/sys/vm/drop_caches
echo "========