# rsync-tool **Repository Path**: hushanjun/rsync ## Basic Information - **Project Name**: rsync-tool - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-06 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rsync-tool #### 介绍 一个基于 Python 和 Tkinter 开发的图形化 rsync 同步工具,支持通过 SSH 在本地和远程服务器之间进行文件同步。提供简洁的图形界面,支持 Pull(拉取)和 Push(推送)操作,方便开发人员进行代码和文件的同步管理。 #### 主要特性 - 🖥️ **图形化界面**: 基于 Tkinter 开发的友好用户界面 - 📁 **多路径配置**: 支持配置多个同步路径,快速切换 - 🔄 **双向同步**: 支持 Pull(从服务器拉取)和 Push(推送到服务器) - ⚙️ **灵活配置**: 使用 TOML 格式配置文件,支持自定义排除规则 - 📊 **实时反馈**: 实时显示同步进度和输出信息 - 📦 **可打包**: 支持打包成独立的 exe 可执行文件 #### 软件架构 ``` rsync-tool/ ├── scripts/ # 源代码目录 │ ├── rsync_gui.py # GUI 主程序 │ ├── rsync_config.py # 配置读取和命令构建 │ └── rsync_tools.py # 工具函数 ├── etc/ # 配置文件目录 │ └── rsync_config.toml # rsync 配置文件 ├── make/ # 打包相关 │ ├── build.py # 打包脚本 │ └── rsync_gui.spec # PyInstaller 配置 ├── dist/ # 打包输出目录 ├── requirements.txt # Python 依赖 └── README.md # 项目说明文档 ``` #### 安装教程 ##### 前置要求 1. **Python 环境**: Python 3.6 或更高版本 2. **rsync 工具**: 需要安装 rsync 和 ssh 客户端 - Windows: 推荐使用 [cwRsync](https://www.itefix.net/cwrsync) 或 [Git for Windows](https://git-scm.com/download/win) 自带的 rsync - Linux/Mac: 通常系统自带,或通过包管理器安装 ##### 安装步骤 1. **克隆或下载项目** ```bash git clone cd rsync-tool ``` 2. **安装 Python 依赖** ```bash pip install -r requirements.txt ``` 3. **配置 rsync 工具路径** - 编辑 `etc/rsync_config.toml` 文件 - 设置 `rsync_path` 和 `ssh_path` 为实际的工具路径 4. **配置同步路径** - 编辑 `etc/rsync_config.toml` 文件 - 在 `[path.*]` 节点下配置服务器和客户端路径 #### 使用说明 ##### 运行 GUI 程序 **方式一:直接运行 Python 脚本** ```bash cd scripts python rsync_gui.py ``` **方式二:使用打包后的 exe 文件** ```bash # 先打包(可选) cd make python build.py # 运行打包后的程序 cd ../dist ./rsync_gui.exe ``` ##### 配置文件说明 配置文件位于 `etc/rsync_config.toml`,格式如下: ```toml [env] # rsync 工具路径 rsync_path = "D:/cwrsync_6.4.2_x64_free/bin/rsync.exe" # ssh 工具路径 ssh_path = "D:/cwrsync_6.4.2_x64_free/bin/ssh.exe" # 排除文件/目录列表 exclude_list = [ ".svn", "log", "caches", ] # 路径配置组 [path.trunk] ssh_remote = "user@example.com" # SSH 远程地址 server = "/root/g7frame/devops/LuaScripts" # 服务器路径 client = "/cygdrive/e/g7/g7frame/devops/LuaScripts" # 客户端路径 [path.branch1] ssh_remote = "user@example.com" server = "/path/on/server" client = "/path/on/client" ``` ##### 操作步骤 1. **启动程序**: 运行 `rsync_gui.py` 或打包后的 exe 文件 2. **选择配置文件**: 点击"选择配置文件"按钮,选择要使用的 TOML 配置文件(可选) 3. **选择路径**: 在下拉框中选择要同步的路径配置 4. **执行同步**: - **Pull(拉取)**: 从服务器同步文件到本地 - **Push(推送)**: 将本地文件同步到服务器(会弹出确认对话框) 5. **查看进度**: 在输出文本框中查看实时同步进度和结果 ##### 打包成 exe 如果需要打包成独立的可执行文件: ```bash cd make python build.py ``` 打包完成后,可执行文件位于 `dist/rsync_gui.exe`。注意: - 确保 `etc/rsync_config.toml` 文件与 exe 在同一目录或正确路径 - 确保 rsync 和 ssh 工具在系统 PATH 中或配置文件中指定的路径存在 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 注意事项 - Push 操作会覆盖服务器上的文件,请谨慎操作 - 确保 SSH 连接配置正确,建议先测试 SSH 连接 - Windows 路径建议使用 Cygwin 格式(如 `/cygdrive/e/...`)或使用绝对路径 - 配置文件中的路径末尾不要带斜杠,程序会自动处理