本文目录导读:

通用清理脚本(推荐)
#!/bin/bash
# Jira 缓存清理脚本
# 适用于 Jira Server/Data Center
# 设置日志
LOG_FILE="/var/log/jira-cache-clean.log"
exec >> "$LOG_FILE" 2>&1
echo "$(date) - 开始清理 Jira 缓存"
# 定义 Jira 目录(根据实际情况修改)
JIRA_HOME="/var/atlassian/application-data/jira"
JIRA_INSTALL="/opt/atlassian/jira"
# 清理缓存目录
CLEAN_DIRS=(
"${JIRA_HOME}/caches"
"${JIRA_HOME}/plugins/.osgi-plugins"
"${JIRA_HOME}/tmp"
"${JIRA_INSTALL}/temp"
)
for dir in "${CLEAN_DIRS[@]}"; do
if [ -d "$dir" ]; then
echo "清理目录: $dir"
find "$dir" -type f -mtime +1 -delete 2>/dev/null
find "$dir" -type f -mmin +60 -delete 2>/dev/null
echo "完成: $(ls -la "$dir" 2>/dev/null | wc -l) 个文件"
else
echo "目录不存在: $dir"
fi
done
# 清理日志文件(保留最近7天)
find "${JIRA_HOME}/log" -name "*.log*" -mtime +7 -delete
echo "日志清理完成"
# 清理索引缓存(谨慎使用)
# 如果需要完全重建索引,取消注释以下行
# echo "准备重建索引..."
# touch "${JIRA_HOME}/.jira-index-recreate"
# 重启 Jira 服务(需要 root 权限)
echo "重启 Jira 服务..."
systemctl restart jira 2>/dev/null || service jira restart 2>/dev/null
echo "$(date) - Jira 缓存清理完成"
系统定时任务配置
将脚本添加到 cron 定时任务:
# 编辑 crontab crontab -e # 添加以下内容(每天凌晨2点运行) 0 2 * * * /usr/local/bin/jira-cache-clean.sh # 或者每6小时运行一次 0 */6 * * * /usr/local/bin/jira-cache-clean.sh
手动清理命令
如果只需要临时清理,也可以直接执行:
# 停止 Jira 服务 sudo systemctl stop jira # 清理缓存目录 sudo rm -rf /var/atlassian/application-data/jira/caches/* sudo rm -rf /var/atlassian/application-data/jira/tmp/* # 启动 Jira 服务 sudo systemctl start jira
Docker 版本清理脚本
Jira 运行在 Docker 中:
#!/bin/bash
# Docker Jira 缓存清理
CONTAINER_NAME="jira"
# 清理缓存
docker exec $CONTAINER_NAME bash -c "
rm -rf /var/atlassian/jira/caches/*
rm -rf /var/atlassian/jira/tmp/*
rm -rf /opt/atlassian/jira/temp/*
"
# 重启容器
docker restart $CONTAINER_NAME
echo "Docker Jira 缓存已清理并重启"
注意事项
- 备份重要数据:在运行自动清理脚本前,确保已备份 Jira 数据
- 测试环境验证:先在测试环境运行脚本
- 权限问题:确保脚本具有执行权限:
chmod +x jira-cache-clean.sh - 监控日志:定期检查清理日志
/var/log/jira-cache-clean.log - 清理频率:不建议过于频繁清理,每天一次或在需要时手动执行
需要根据您的实际情况修改:
JIRA_HOME路径JIRA_INSTALL路径- 系统服务管理方式(systemd/init.d)
- 缓存保留时间(mtime 参数)
您可以根据自己的 Jira 安装方式选择对应的脚本,如果需要针对特定环境优化,请提供更多信息。