RsyncUI 详解:macOS 上的 rsync 图形前端
rsync 是文件同步领域无可争议的命令行之王,但那一长串参数劝退过无数人。rsyncOSX/RsyncUI 做的事很纯粹:用 SwiftUI 给 rsync 套一层图形界面——实际执行同步的仍是 rsync 本尊,GUI 只负责把参数配置变成表单填写,每一步生成的 rsync 命令都可见、可核对。这款 macOS 应用 100% 开源免费,由 Apple 数字签名与公证,纯桌面无服务器组件,任务与日志全部留在本地。约 1.5k Star、MIT 协议。本文从核心设计、功能体系、使用场景到选型,完整拆解。
1、项目概述
RsyncUI 定位为基于 Swift 与 SwiftUI 的 macOS rsync 图形界面(GUI for rsync),要求 macOS Sonoma 14.0 及以上。它出自 RsyncOSX 之手——同一作者的前作 RsyncOSX 是老牌 macOS rsync 前端,RsyncUI 是其现代化续作,官方建议 Sonoma 及以后用户直接选 RsyncUI(活跃开发中)。仓库约 1.5k Star、MIT 协议,2021 年 3 月创建,Swift 主体,Universal 二进制同时原生支持 Apple Silicon 与 Intel。
基本盘:
- 安装:brew install --cask rsyncui 一条命令(SHA-256 自动验证),或 GitHub Releases 下载 dmg(需手动验哈希)
- 安全:Apple 数字签名 + 公证,防篡改;刻意不做沙箱——沙箱会挡住 .ssh、.rsyncosx 等隐藏目录与 Homebrew 版 rsync
- 隐私:纯桌面应用,无服务器组件,日志不离开 Mac,任务数据可从设置备份到 Documents
- 文档:官方文档站 rsyncui.netlify.app/docs,覆盖入门、任务、SSH、参数、快照等
- 系统要求:macOS Sonoma 14.0+,Apple Silicon / Intel 双架构原生
2、核心设计:透明壳而非黑盒
RsyncUI 的产品哲学可以概括为一句话:GUI 是壳,rsync 是核——壳对核完全透明。
设计原则:
- 命令可见:表单填好参数后自动生成对应 rsync 命令,执行的就是你看到的,没有隐藏魔法
- 参数直达:rsync 的常用参数(archive / compress / delete / dry-run)以开关形式呈现,高级参数也可直接编辑
- 数据本地:无遥测无上传,任务配置与日志存本机,随时可导出备份
- 版本敏感:明确提示所支持的 rsync 版本与路径(含 Homebrew 版),版本不匹配会警告
设计要点:
1. 不做沙箱是权衡而非疏漏:沙箱化将禁止访问 .ssh(SSH 密钥)与 Homebrew rsync,应用会失去实用价值——官方文档明说这一取舍
2. Concealing Actions(⌘S):主工具栏可切换动作显隐,把不常用操作收起来保持界面克制
3. 前作对比:与 RsyncOSX 的核心差异在 UI 技术栈(SwiftUI vs 旧框架),同步能力同源,新系统选新应用
4. MIT 协议 + 官方承诺永久免费开源,个人商用皆无许可负担
3、功能体系:任务、参数与调度
功能围绕"任务"组织:一个任务 = 源 + 目标 + 参数组合,保存后反复执行。
任务与参数:
- 任务模型:Add 新建任务,Source 选源目录、Destination 选目标,参数以开关勾选;支持 Quick Task 快速模式
- 常用参数:Archive 保留属性权限、Compress 传输压缩(网络场景)、Delete 删除目标多余文件、Dry run 预演不落盘
- 同步策略:镜像同步(目标与源完全一致)、增量备份(只传变化)、存档模式(保元数据)、远程同步(SSH)
- 远程格式:user@server:/path/to/destination,推荐 SSH 密钥认证免密执行
日志与调度:
- 日志:每次同步记录传输文件清单、耗时统计、错误信息、数据量统计,排障与调优有据可查
- 调度:基于 Timer 库的定时执行,默认隐藏需在用户设置中启用
- 快照:支持 snapshot 方式的时间点备份,配合 --link-dest 思路保留多版本
- 导入导出:任务配置可导出导入,换机迁移不重配
调度限制(重要):
1. Timer 实现的调度在 Mac 睡眠或锁屏时不会执行,需保持唤醒且已登录
2. 需要睡眠时备份的用户建议:调整节能设置保持唤醒、或改用 launchd 等系统级定时、或接受手动执行
3. 这是轻量桌面应用的合理取舍,不能当服务器级 cron 替代
4、安装与典型场景
两步装好,三类场景最能体现价值。
# Homebrew 安装(推荐,SHA-256 自动验证)
brew install --cask rsyncui
# 或从 GitHub Releases 下载 dmg(需手动验证哈希)
# https://github.com/rsyncOSX/RsyncUI/releases
# 第一个任务三步走:
# 1. Add 新建任务:Source 选 ~/Projects,Destination 选 /Volumes/Backup/Projects
# 2. 勾选参数:Archive(保权限)+ Dry run(先预演)
# 3. 确认预览无误后去掉 Dry run,点 Synchronize 执行
# 远程同步目标格式(推荐先配好 SSH 密钥免密):
# user@server:/path/to/destination场景要点:
1. 开发项目备份:~/Projects → 外置硬盘,开 Archive 保留权限;首次全量慢,之后增量秒级
2. 照片视频归档:~/Pictures 或相机卡 → NAS / 挂载云盘,开 Compress 省传输时间
3. 文档多机同步:远程服务器中转,SSH 密钥认证,定期查日志确认同步健康
4. 权限注意:避免同步系统目录;同步其他用户文件可能需要管理员权限,先小范围测试
5、定位对比:macOS 同步方案三选一
把 RsyncUI 与 rsync 裸用、FreeFileSync 放在一张桌上,三种路线清晰起来。
三者对比:
- RsyncUI:macOS 原生 rsync GUI,SwiftUI 现代界面,命令透明可见,MIT 免费无商用限制(1.5k Star)
- rsync 裸用:全平台命令行标准,脚本化与服务器场景无敌,参数记忆成本高、无预览 GUI
- FreeFileSync:跨平台图形化双向同步,预览确认流程完善,个人免费但 v12.5 后商用收费
选型建议:
1. macOS 用户、想要 rsync 能力又不想背参数 → RsyncUI
2. 服务器 / 脚本化 / 非 Mac 场景 → rsync 裸用
3. 跨 Windows / Linux 双向可视化同步、非商用 → FreeFileSync
4. 组合玩法:Mac 上 RsyncUI 管桌面备份,服务器侧脚本 rsync,两套配置语义一致、心智统一
6、总结
RsyncUI 是 RsyncOSX 作者的现代化续作(约 1.5k Star、MIT 协议、Apple 签名公证):Swift + SwiftUI 构建,macOS Sonoma 起,Universal 双架构原生运行;核心理念是给 rsync 做透明壳——表单生成命令、命令可见可核对、无黑盒无遥测;任务模型覆盖镜像 / 增量 / 存档 / 远程 SSH 同步,配详细日志、快照备份、配置导入导出与可选的 Timer 调度。Homebrew 一条命令安装,纯本地数据,商用零许可负担。
适用与边界:它适合 macOS 用户想要 rsync 的可靠同步能力、又不愿背参数表的场景——开发备份、媒体归档、多机文档同步都能覆盖;调度基于 Timer 库,Mac 睡眠 / 锁屏时不执行,不能替代服务器级定时方案;仅支持 macOS Sonoma 及以上,旧系统用户可用前作 RsyncOSX;同步系统目录需谨慎处理权限。与 rsync 裸用是互补关系:GUI 降低使用门槛,底层语义完全一致,学会的 rsync 知识两边通用。

