下面给你一个实用、可复用的 Linux cleanup 脚本思路,从基础版 → 进阶版 → 生产级建议,你可以按需取用。
/tmp, /var/tmp)/var/log)#!/bin/bash
echo "开始清理系统..."
# 清理 /tmp 下 7 天未访问的文件
find /tmp -type f -atime +7 -delete
# 清理日志
find /var/log -type f -name "*.log" -mtime +30 -delete
# 清理 apt 缓存(Debian/Ubuntu)
apt-get clean
echo "清理完成"
保存为 cleanup.sh,然后:
chmod +x cleanup.sh
./cleanup.sh
#!/bin/bash
LOG_DIR="/var/log"
TMP_DIR="/tmp"
DAYS=7
LOG_FILE="/var/log/cleanup.log"
echo "$(date) 开始清理" >> $LOG_FILE
find $TMP_DIR -type f -atime +$DAYS -delete
find $LOG_DIR -type f -name "*.log" -mtime +30 -delete
echo "$(date) 清理完成" >> $LOG_FILE
find /tmp -type f -atime +7 -print
# 确认无误后再加 -delete
#!/bin/bash
echo "清理 Docker 资源..."
docker system prune -f
docker volume prune -f
docker image prune -af
echo "Docker 清理完成"
⚠️ 注意:会删除未使用的容器、网络、镜像、卷
crontab -e
每天凌晨 2 点执行:
0 2 * * * /path/cleanup.sh
✅ 使用 -print 先确认
✅ 不要 rm -rf / 或 rm -rf *
✅ 对重要目录加白名单
✅ 记录日志
✅ 用 sudo 控制权限
#!/bin/bash
set -e
DIRS=("/tmp" "/var/tmp")
DAYS=7
for dir in "${DIRS[@]}"; do
find "$dir" -type f -atime +$DAYS -delete
done
如果你愿意,可以告诉我:
我可以帮你定制一个专属 cleanup 脚本。