每日备份 2026-06-10 12:57:13
This commit is contained in:
1 parent
fda2ccb8c2
commit
3d2e638c6a
244 files changed
+58890
-3
No files matched your search
+218
@@ -0,0 +1,218 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# 程序名称: novel-sync.sh
|
||||
# ============================================================================
|
||||
# 功能描述: 平安书章节同步模块,自动同步章节文件、检查报告、反思记录到共享文件夹
|
||||
# ============================================================================
|
||||
# 设计目的:
|
||||
# 1. 同步章节文件到共享文件夹
|
||||
# 2. 同步检查报告到共享文件夹
|
||||
# 3. 同步反思记录到共享文件夹
|
||||
# 4. 创建远程目录结构
|
||||
# 5. 验证同步结果
|
||||
# ============================================================================
|
||||
# 输入参数:
|
||||
# $1: 章节文件名(可选,默认同步最新章节)
|
||||
# ============================================================================
|
||||
# 输出:
|
||||
# 标准输出: 同步进度和结果
|
||||
# ============================================================================
|
||||
# 依赖:
|
||||
# - smbclient
|
||||
# - /root/.openclaw/workspace/平安书 目录
|
||||
# - 共享文件夹: //192.168.0.99/temp1/doc/平安书
|
||||
# ============================================================================
|
||||
# 作者: 青龙 (OpenClaw AI)
|
||||
# 创建时间: 2026-02-13
|
||||
# 更新: 2026-02-15 v1.2 修复反思记录同步
|
||||
# ============================================================================
|
||||
|
||||
SHARE_DIR="//192.168.0.99/temp1"
|
||||
REMOTE_DIR="doc/平安书"
|
||||
LOCAL_DIR="/root/.openclaw/workspace/平安书"
|
||||
REPORT_DIR="$LOCAL_DIR/报告"
|
||||
REFLECTION_DIR="$LOCAL_DIR/反思记录"
|
||||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
|
||||
|
||||
# ============================================================================
|
||||
# 同步函数
|
||||
# ============================================================================
|
||||
sync_chapter() {
|
||||
local chapter="$1"
|
||||
local chapter_name=$(basename "$chapter")
|
||||
local base_name=$(basename "$chapter" .txt)
|
||||
local report="${chapter%.txt}-检查报告.md"
|
||||
local reflection="${REFLECTION_DIR}/${base_name}-反思.md"
|
||||
|
||||
echo "╔════════════════════════════════════════════════════╗"
|
||||
echo "║ 平安书章节同步模块 v1.2 ║"
|
||||
echo "╚════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
# 检查章节文件是否存在
|
||||
if [ ! -f "$chapter" ]; then
|
||||
echo "❌ 错误:章节文件不存在: $chapter"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "📤 同步章节: $chapter_name"
|
||||
echo "📁 目标: $SHARE_DIR/$REMOTE_DIR/"
|
||||
echo ""
|
||||
|
||||
# 创建远程目录
|
||||
smbclient "$SHARE_DIR" -N -c "mkdir $REMOTE_DIR" 2>/dev/null
|
||||
smbclient "$SHARE_DIR" -N -c "mkdir $REMOTE_DIR/报告" 2>/dev/null
|
||||
smbclient "$SHARE_DIR" -N -c "mkdir $REMOTE_DIR/反思记录" 2>/dev/null
|
||||
|
||||
# 1. 同步章节文件
|
||||
echo "1. 同步章节文件..."
|
||||
smbclient "$SHARE_DIR" -N -c "put $chapter $REMOTE_DIR/$chapter_name" 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 章节已同步"
|
||||
else
|
||||
echo " ❌ 章节同步失败"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# 2. 同步检查报告
|
||||
if [ -f "$report" ]; then
|
||||
echo ""
|
||||
echo "2. 同步检查报告..."
|
||||
local report_name=$(basename "$report")
|
||||
smbclient "$SHARE_DIR" -N -c "put $report $REMOTE_DIR/报告/$report_name" 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 报告已同步"
|
||||
else
|
||||
echo " ⚠️ 报告同步失败(章节已成功)"
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
echo " ℹ️ 无检查报告"
|
||||
fi
|
||||
|
||||
# 3. 同步反思记录
|
||||
if [ -f "$reflection" ]; then
|
||||
echo ""
|
||||
echo "3. 同步反思记录..."
|
||||
local reflection_name=$(basename "$reflection")
|
||||
smbclient "$SHARE_DIR" -N -c "put $reflection $REMOTE_DIR/反思记录/$reflection_name" 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 反思已同步"
|
||||
else
|
||||
echo " ⚠️ 反思同步失败(章节已成功)"
|
||||
fi
|
||||
else
|
||||
echo ""
|
||||
echo " ℹ️ 无反思记录"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "📋 同步完成,状态:待发表"
|
||||
echo "📝 请手动发表后,通知我标记为「已发表」"
|
||||
return 0
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# 同步所有报告(反思、检查、进度)
|
||||
# ============================================================================
|
||||
sync_all_reports() {
|
||||
echo "╔════════════════════════════════════════════════════╗"
|
||||
echo "║ 报告同步模块 v1.0 ║"
|
||||
echo "╚════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
# 创建远程目录
|
||||
smbclient "$SHARE_DIR" -N -c "mkdir $REMOTE_DIR/报告" 2>/dev/null
|
||||
smbclient "$SHARE_DIR" -N -c "mkdir $REMOTE_DIR/反思记录" 2>/dev/null
|
||||
smbclient "$SHARE_DIR" -N -c "mkdir $REMOTE_DIR/进度追踪" 2>/dev/null
|
||||
|
||||
# 同步检查报告
|
||||
echo "📄 同步检查报告..."
|
||||
local report_count=0
|
||||
for report in "$REPORT_DIR"/*.md; do
|
||||
if [ -f "$report" ]; then
|
||||
local name=$(basename "$report")
|
||||
smbclient "$SHARE_DIR" -N -c "put $report $REMOTE_DIR/报告/$name" 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
report_count=$((report_count + 1))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo " ✅ 同步 $report_count 个检查报告"
|
||||
|
||||
# 同步反思记录
|
||||
echo ""
|
||||
echo "🧠 同步反思记录..."
|
||||
local reflection_count=0
|
||||
for reflection in "$REFLECTION_DIR"/*.md; do
|
||||
if [ -f "$reflection" ]; then
|
||||
local name=$(basename "$reflection")
|
||||
smbclient "$SHARE_DIR" -N -c "put $reflection $REMOTE_DIR/反思记录/$name" 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
reflection_count=$((reflection_count + 1))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo " ✅ 同步 $reflection_count 个反思记录"
|
||||
|
||||
# 同步进度报告
|
||||
echo ""
|
||||
echo "📈 同步进度追踪..."
|
||||
local progress_count=0
|
||||
for progress in "$LOCAL_DIR/进度追踪"/*.md; do
|
||||
if [ -f "$progress" ]; then
|
||||
local name=$(basename "$progress")
|
||||
smbclient "$SHARE_DIR" -N -c "put $progress $REMOTE_DIR/进度追踪/$name" 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
progress_count=$((progress_count + 1))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo " ✅ 同步 $progress_count 个进度报告"
|
||||
|
||||
echo ""
|
||||
echo "✅ 报告同步完成"
|
||||
}
|
||||
|
||||
# ============================================================================
|
||||
# 主程序
|
||||
# ============================================================================
|
||||
main() {
|
||||
case "${1:-chapter}" in
|
||||
chapter)
|
||||
if [ -z "$2" ]; then
|
||||
# 默认同步最新章节
|
||||
local latest=$(ls -t "$LOCAL_DIR"/第*章_*.txt 2>/dev/null | head -1)
|
||||
|
||||
if [ -z "$latest" ]; then
|
||||
echo "ℹ️ 未发现章节文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sync_chapter "$latest"
|
||||
else
|
||||
sync_chapter "$LOCAL_DIR/$2"
|
||||
fi
|
||||
;;
|
||||
all)
|
||||
sync_all_reports
|
||||
;;
|
||||
help|--help|-h)
|
||||
echo "用法: $0 {chapter [章节名]|all|help}"
|
||||
echo ""
|
||||
echo "命令:"
|
||||
echo " chapter [章节名] 同步章节(默认最新)"
|
||||
echo " all 同步所有报告"
|
||||
echo " help 显示帮助"
|
||||
;;
|
||||
*)
|
||||
echo "未知命令: $1"
|
||||
echo "使用: $0 help 查看帮助"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in new issue
Block a user