3.5 KiB
3.5 KiB
自动同步监控系统管理指南
系统概述
这是一个基于文件变化监控的自动Git同步系统,监听 /Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live 目录,当任何文件变化时自动执行双向git同步。
核心组件
- 监控器 (
simple-file-watcher.py) - Python脚本,每2秒检查文件变化 - 启动脚本 (
start-simple-watcher.sh) - 启动监控器为后台守护进程 - 停止脚本 (
stop-simple-watcher.sh) - 停止监控器 - 状态脚本 (
status-simple-watcher.sh) - 检查监控器状态 - 同步脚本 (
auto-sync.sh) - 执行git拉取、添加、提交、推送
使用方法
启动监控器
./start-simple-watcher.sh
停止监控器
./stop-simple-watcher.sh
检查状态
./status-simple-watcher.sh
查看监控日志
tail -f simple-watcher.log
查看同步日志
tail -f auto-sync.log
文件变化触发流程
文件创建/修改/删除
↓
监控器检测到变化 (2秒内)
↓
执行 auto-sync.sh
↓
1. git pull origin main (拉取远程变更)
↓
2. git add . (添加所有变更)
↓
3. git commit -m "auto-sync: ..." (提交)
↓
4. git push origin main (推送)
↓
完成同步,等待下次变化
技术细节
监控器特性
- 轮询间隔:2秒
- 忽略文件:.log, .tmp, ~ (临时文件)
- 忽略目录:.git
- 防重复执行:使用锁文件
/tmp/sanguo_sync.lock - 日志记录:
simple-watcher.log
同步脚本特性
- 自动处理未跟踪文件
- 错误处理:失败重试2次
- 日志记录:
auto-sync.log - 防冲突:先pull再push
PID管理
PID管理
- PID文件:
simple-watcher.pid - 自动清理:停止时删除PID文件
- 状态检查:通过PID验证进程运行状态
故障排除
监控器没有启动
- 检查Python3是否安装:
python3 --version - 检查脚本权限:
chmod +x simple-file-watcher.py - 检查日志:
tail -f simple-watcher.log
同步失败
- 检查网络连接
- 检查Git配置:
git remote -v - 检查Git权限:确保有推送权限
- 查看错误日志:
tail -f auto-sync.log
文件变化未触发同步
- 检查监控器是否运行:
./status-simple-watcher.sh - 检查文件是否被忽略(如.log文件)
- 检查监控间隔:默认2秒,可能需要等待
系统集成
开机自启动
可以将以下命令添加到crontab或launchd以实现开机自启动:
cd "/Users/chufeng/.openclaw/sanguo_projects/sanguo_quant_live" && nohup python3 simple-file-watcher.py > /dev/null 2>&1 &
与其他系统集成
- 可以与CI/CD系统集成
- 可以扩展为多目录监控
- 可以添加通知功能(邮件、Slack等)
性能考虑
- 轮询间隔2秒,对系统负载影响小
- 监控整个目录树,但忽略.git目录
- 同步脚本有防重复执行机制,避免频繁触发
安全注意事项
- 确保.gitignore正确配置,不提交敏感信息
- 监控器在后台运行,确保有适当权限
- 同步脚本会推送所有变更,确保不推送机密数据
扩展功能
如需扩展功能,可以修改 simple-file-watcher.py:
- 添加文件类型过滤
- 添加事件类型区分(创建/修改/删除)
- 添加批量处理(多个变化一次同步)
- 添加通知机制
维护
- 定期清理日志文件
- 监控磁盘空间
- 检查Git仓库健康状态
- 更新Python依赖(如有)