chore: add integrity monitoring script
This commit is contained in:
65
.githooks/integrity-check.sh
Executable file
65
.githooks/integrity-check.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# Integrity Check — 定时巡检 develop 分支的完整性
|
||||
# 用法: bash .githooks/integrity-check.sh
|
||||
# 建议: crontab 每天 8:00 执行一次
|
||||
# ============================================================
|
||||
|
||||
# 配置
|
||||
REMOTE="origin"
|
||||
BRANCH="develop"
|
||||
WORK_DIR="/tmp/his-integrity-check"
|
||||
|
||||
# 受保护路径
|
||||
PATHS=(
|
||||
"openhis-server-new/pom.xml"
|
||||
"openhis-server-new/core-admin/pom.xml"
|
||||
"openhis-server-new/core-common/pom.xml"
|
||||
"openhis-server-new/core-flowable/pom.xml"
|
||||
"openhis-server-new/core-framework/pom.xml"
|
||||
"openhis-server-new/core-generator/pom.xml"
|
||||
"openhis-server-new/core-quartz/pom.xml"
|
||||
"openhis-server-new/core-system/pom.xml"
|
||||
"openhis-server-new/openhis-application/pom.xml"
|
||||
"openhis-server-new/openhis-domain/pom.xml"
|
||||
"openhis-server-new/openhis-common/pom.xml"
|
||||
)
|
||||
|
||||
echo "== Integrity Check $(date) =="
|
||||
|
||||
# 拉取最新
|
||||
cd $WORK_DIR 2>/dev/null || (mkdir -p $WORK_DIR && cd $WORK_DIR && git clone --depth=1 http://zhangfei:GentronHIS2025@192.168.110.253:3000/wangyizhe/his.git . 2>/dev/null)
|
||||
cd $WORK_DIR && git fetch origin $BRANCH --depth=1 2>/dev/null && git reset --hard origin/$BRANCH 2>/dev/null
|
||||
|
||||
ALL_PASS=true
|
||||
|
||||
# 检查每个路径是否存在
|
||||
for path in "${PATHS[@]}"; do
|
||||
if git ls-tree -r HEAD --name-only 2>/dev/null | grep -q "^$path$"; then
|
||||
echo " ✅ $path"
|
||||
else
|
||||
echo " ❌ $path — 丢失!"
|
||||
ALL_PASS=false
|
||||
fi
|
||||
done
|
||||
|
||||
# 检查最近10次提交是否有异常
|
||||
echo ""
|
||||
echo "最近10次提交:"
|
||||
git log --oneline -10 2>/dev/null | while read sha msg; do
|
||||
# 检查删除文件数
|
||||
del=$(git diff --name-status ${sha}^..${sha} 2>/dev/null | grep -c "^D")
|
||||
if [ "$del" -gt 100 ]; then
|
||||
echo " ⚠️ $sha 删除了 $del 个文件! $msg"
|
||||
else
|
||||
echo " ✓ $sha ($del 删除) $msg"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$ALL_PASS" = true ]; then
|
||||
echo ""
|
||||
echo "✅ 完整性检查通过"
|
||||
else
|
||||
echo ""
|
||||
echo "❌ 完整性检查失败! 请立即处理!"
|
||||
fi
|
||||
Reference in New Issue
Block a user