# sqliteSync 数据库同步 **Repository Path**: duzhiguo/sqliteSync ## Basic Information - **Project Name**: sqliteSync 数据库同步 - **Description**: sqlite 多任务同步 定时 ,间隔执行等 ,主要任务是数据库同步 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-03 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 命令行模式 + 后台守护模式的使用方法: ## 1. 命令行直接执行(单任务) ```bash # 全量同步 python sqlite_sync_gui.py source.db target.db # 增量同步 python sqlite_sync_gui.py --incremental source.db target.db # 不同步索引 python sqlite_sync_gui.py --no-indexes source.db target.db ``` ![主界面](image/%E4%B8%BB%E7%95%8C%E9%9D%A2.PNG) ## 2. 后台守护模式(无界面,读取配置自动运行) ```bash # 使用默认配置文件(~/.sqlite_sync_tasks.json) python sqlite_sync_gui.py --daemon # 指定配置文件 python sqlite_sync_gui.py --daemon --config /path/to/config.json ``` --- ## 守护模式配置步骤 ### 第1步:先用 GUI 配置任务并保存 ```bash python sqlite_sync_gui.py # 在界面中添加任务、设置定时、点击保存配置 ``` ### 第2步:测试守护模式 ```bash python sqlite_sync_gui.py --daemon ``` 输出示例: ``` [守护模式] 启动,配置文件: /home/username/.sqlite_sync_tasks.json [守护模式] 任务 task_1 已启动,定时: 00:00 [守护模式] 任务 task_2 已启动,间隔: 30 minutes [守护模式] 所有任务已启动,按 Ctrl+C 停止 ``` ### 第3步:Linux 开机自启(systemd) ```bash # 创建服务文件 sudo tee /etc/systemd/system/sqlite-sync.service << 'EOF' [Unit] Description=SQLite Sync Service After=network.target [Service] Type=simple User=your_username ExecStart=/usr/bin/python3 /opt/sqlite_sync_gui.py --daemon Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF # 启用并启动 sudo systemctl daemon-reload sudo systemctl enable sqlite-sync sudo systemctl start sqlite-sync # 查看状态 sudo systemctl status sqlite-sync sudo journalctl -u sqlite-sync -f ``` ### 第4步:Linux crontab 方式(更轻量) ```bash # 编辑 crontab crontab -e # 添加行(每天 00:00 执行) 0 0 * * * /usr/bin/python3 /opt/sqlite_sync_gui.py --daemon >> /var/log/sqlite_sync.log 2>&1 ``` --- ## 配置文件格式 `~/.sqlite_sync_tasks.json`: ```json { "tasks": [ { "id": "task_1", "config": { "src": "/path/to/source.db", "dst": "/path/to/target.db", "mode": "incremental", "sync_indexes": true, "sync_views": true, "sync_triggers": true, "exec_type": "daily", "time": "00:00" }, "status": "stopped" }, { "id": "task_2", "config": { "src": "/path/to/backup.db", "dst": "/path/to/main.db", "mode": "full", "exec_type": "interval", "interval_value": 30, "interval_unit": "minutes" } } ] } ``` --- ## 三种无界面运行方式对比 | 方式 | 命令 | 适用场景 | | -------------- | ----------------------------------------- | ------------------------ | | **单次命令行** | `python sqlite_sync_gui.py src.db dst.db` | 临时执行一次 | | **后台守护** | `python sqlite_sync_gui.py --daemon` | 长期运行,自动定时执行 | | **crontab** | `crontab -e` 添加定时任务 | 系统级定时,无需常驻进程 |