禅道开源版磁盘空间无限膨胀的解决方法
前几天,我安装了最新版本的开源禅道,结果总是发现磁盘爆满,通过排查发现,log日志在不断的写入,并且不会自动删除。所以造成了磁盘爆满。想要解决这个问题有两个思路:一、安装个低版本的禅道,高版本在开源版做了处理,埋下了磁盘爆满的风险。
.默认全量备份:每天自动生成包含「数据库备份(*.sql.php)+附件备份(*.file目录)+代码备份(*.code目
录)」的完整备份
·永久保留不清理:默认不会自动删除任何旧备份,所有备份永久存储在服务器
·开源版无清理功能:后台完全没有「保留备份天数/自动清理旧备份」的可视化配置,仅企业版支持
·体积爆炸式增长:对于附件多的团队,单天备份体积轻松突破1G,半个月就能占满15G+磁盘,几个月直接上百G,
最终磁盘爆满,服务宕机

这个版本的就不会出现磁盘爆满的风险。
二、就是自己写个脚本,删除相关og,linux环境代码如下,路径等根据自己的实际情况更改。
bash
#!/bin/bash
#功能:每天自动删除7天前的旧备份,仅操作备份目录,不碰真实数据
#适配:禅道一键安装包默认路径,无需修改
#1、显式声明环境变量,彻底解决cron找不到命令的问题
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#2、定义备份目录(禅道一键安装包默认路径,无需修改)
BACKUP_DIR-="/opt/zbox/app/zentao/tmp/backup/"
#3、进入备份目录,失败则直接退出,杜绝误操作其他目录
cd "${BACKUP_DIR}" || exit 1
#4、核心清理逻辑(&连接,任一环节失败则终止,避免不完整清理)
# 4.1 删除7天前的数据库备份(.sql.php),2>/dev/null屏蔽正常提示
find . -type f -name "*.sql.php" -mtime +7 -delete 2>/dev/null && \
# 4.2 删除7天前的附件备份(*.fie目录,真正占空间的核心)
find . -type d -name "*.file" -mtime +7 -exec rm -rf {} \;2>/dev/null &&\
# 4.3 删除7天前的代码备份(.code目录)
find . -type d -name "*.code" -mtime +7 -exec rm -rf {} \;2>/dev/null &&\
# 4.4 清理删除后的空目录
find . -type d -empty -delete 2>/dev/null &&\
#5、记录清理日志(带时间戳,写入/root目录,权限100%可用,方便排查)
echo "$(date '+%Y-%m-%d %H:%M:%S') - $(du -sh ${BACKUP_DIR})" >> /root/zentao_backup.log 2>&1
如果手动运行没有问题,可以添加成定时任务,自动执行。
特别说明:在windows操作系统的,主要会导致wamp下的log文件夹暴增,到时候根据自己的情况删除这个文件夹下的log日志即可。

浙公网安备 33010602011771号