#!/bin/bash
DIR_LIST=(
"/usr/local/Ascend/cann/|./monitor_snapshot_1.txt"
"/usr/local/Ascend/cann/asc/|./monitor_snapshot_2.txt"
)
RESULT_CHECK="./result_check.txt"
rm -f "$RESULT_CHECK"
for item in "${DIR_LIST[@]}"; do
TARGET_DIR=$(echo "$item" | cut -d'|' -f1)
SNAPSHOT_FILE=$(echo "$item" | cut -d'|' -f2)
if [ ! -d "$TARGET_DIR" ]; then
echo -e "\n【错误】目录不存在:$TARGET_DIR" 2>&1 | tee -a "$RESULT_CHECK"
continue
fi
CURRENT_SNAP=$(mktemp)
find "$TARGET_DIR" -maxdepth 1 -mindepth 1 -printf '%y %f\n' 2>/dev/null | sort > "$CURRENT_SNAP"
echo -e "\n========== 监控目录:$TARGET_DIR =========="
if [ ! -f "$SNAPSHOT_FILE" ]; then
cp "$CURRENT_SNAP" "$SNAPSHOT_FILE"
echo "✔ 首次运行,已生成初始快照:$SNAPSHOT_FILE"
rm "$CURRENT_SNAP"
continue
fi
DIFF=$(diff "$SNAPSHOT_FILE" "$CURRENT_SNAP" 2>/dev/null)
if [ -z "$DIFF" ]; then
echo "✔ 目录结构未变动" 2>&1 | tee -a "$RESULT_CHECK"
else
echo "✘ 目录结构已变动,差异如下:" 2>&1 | tee -a "$RESULT_CHECK"
echo "$DIFF"
fi
rm "$CURRENT_SNAP"
done
if [ ! -f $RESULT_CHECK ]; then
echo -e "\n========== 初始快照已生成 =========="
exit 0
else
echo -e "\n========== 目录对比完成 =========="
fi
COUNT=$(grep -c -F "目录结构未变动" "$RESULT_CHECK")
if [ "$COUNT" -eq 2 ]; then
echo "check pass"
else
echo "check fail"
fi