Files
devops/docker/paperless/plugins/em_reports_consume.sh
T
2026-01-11 10:36:07 +08:00

48 lines
1.4 KiB
Bash

#!/bin/bash
SRC="/volume1/docker/sharedata/stock_data/pdfs"
DST="/volume1/docker/sharedata/stock_data/em_reports_consume"
LOG="/volume1/docker/projects/devops/docker/paperless/plugins/log/paperless.log"
TARGET_UID=1000
TARGET_GID=1000
# 检查目录
if [ ! -d "$SRC" ]; then
echo "$(date '+%F %T') [ERROR] 源目录不存在: $SRC" | tee -a "$LOG"
exit 1
fi
if [ ! -d "$DST" ]; then
echo "$(date '+%F %T') [ERROR] 目标目录不存在: $DST" | tee -a "$LOG"
exit 1
fi
# 关键添加:检查并创建log目录(-p 确保父目录存在,无报错)
LOG_DIR=$(dirname "$LOG") # 提取日志文件所在目录(即 ./log)
if [ ! -d "$LOG_DIR" ]; then
mkdir -p "$LOG_DIR"
echo "$(date '+%F %T') [INFO] log目录不存在,已创建: $LOG_DIR" | tee -a "$LOG"
fi
COUNT=0
for f in "$SRC"/*.pdf; do
[ -f "$f" ] || continue
# 移动 + 改属主 + 改权限
if install -D -o "$TARGET_UID" -g "$TARGET_GID" -m 644 "$f" "$DST"; then
rm -f "$f"
echo "$(date '+%F %T') [OK] Moved: $f" >> "$LOG"
((COUNT++))
# 每移动10个文件,输出进度到屏幕(同时写入日志)
if (( COUNT % 100 == 0 )); then
PROGRESS_MSG="$(date '+%F %T') [PROGRESS] 已移动 $COUNT 个文件"
echo "$PROGRESS_MSG" | tee -a "$LOG"
fi
else
echo "$(date '+%F %T') [FAIL] Failed: $f" >> "$LOG"
fi
done
echo "$(date '+%F %T') [INFO] 搬运完成,共移动 $COUNT 个文件" | tee -a "$LOG"