Mac 可借助 Automator 实现三种常见的文件夹自动同步方式:1. 通过日历触发每日定时同步,操作简单,适合普通用户;2. 借助 launchd 后台守护,实现锁屏或未登录状态下也能稳定运行;3. 使用文件夹操作实现新增文件后即时同步,通常延迟低于 2 秒。

想在 Mac 上实现文件夹自动同步,其实无需额外安装第三方工具,直接利用系统自带的 Automator 就能创建一个响应快、运行稳定的文件同步机器人。核心在于选择合适的触发方式:是按固定时间自动执行同步,还是在源文件发生变化后立即自动备份。
用日历提醒触发每日定时同步
这种方式非常适合普通用户,全程图形化设置,几乎不用接触命令行。只要 Mac 处于开机且未休眠状态,就可以按设定时间自动运行同步任务。
打开 Automator → 新建文稿 → 选择“快速操作” → 点击“选取”。
从左侧操作库拖入“运行 Shell 脚本”,在脚本框中粘贴以下命令(请将/Volumes/BackupDrive和相关路径按实际情况修改):
rsync -a v --delete ~/Documents/ /Volumes/BackupDrive/Documents/
勾选“工作流接收‘无输入’”,并启用“在访达中可用”。
将其保存为“每日同步文档”,名称建议简洁清晰,便于识别,系统也会自动将它注册到右键菜单中。
打开“日历”App → 新建重复事件(例如每天上午 9:30)→ 添加提醒 → 选择“运行快速操作” → 挑选刚保存的“每日同步文档”。
【必须确保备份盘已经挂载且磁盘名称完全一致,否则 rsync 可能会静默失败】
用 launchd 后台守护实现真正无人值守
这种方案不依赖前台界面是否活跃,即使 Mac 已锁屏,甚至用户没有登录,也能持续执行同步任务,稳定性通常明显优于日历触发方案。
第一步:新建 Automator 文稿,选择“应用程序”类型。
第二步:拖入“运行 Shell 脚本”,填入带有保护逻辑的同步命令:
这段脚本的执行逻辑并不复杂:首先会检测外接备份盘(/Volumes/BackupDrive)是否已经成功挂载。如果检测到该路径存在,就会通过 rsync 命令把本地 ~/Documents/ 目录同步到备份磁盘,同时启用详细输出(-a v),并清理备份目录中源文件夹已不存在的文件(--delete)。整个执行过程还会把日志持续追加到 ~/Library/Logs/sync.log 中,方便后续查看同步记录。如果备份盘未挂载,脚本也不会直接报错退出,而是写入一条带时间戳的提示信息:“备份盘未挂载”,方便后期排查问题。
第三步:保存为“DocSync.app”,建议放在~/Applications目录下(如果目录不存在,可以手动新建)。
第四步:在终端执行三行命令创建 launchd 配置:
mkdir -p ~/Library/LaunchAgents
touch ~/Library/LaunchAgents/com.user.docsync.plist
第五步:使用文本编辑器打开该 plist 文件,填入标准 XML 格式,其中StartCalendarInterval设置为每天上午 9:30:
第六步:加载配置 → 在终端运行:launchctl load ~/Library/LaunchAgents/com.user.docsync.plist
用文件夹操作实现“有新文件就同步”
这种方式适合希望源文件夹一有更新就立刻自动同步到备份位置的场景,整体响应速度很快,通常可控制在 2 秒以内。
打开 Automator → 新建文稿 → 选择“文件夹操作” → 点击“选取” → 指定需要监控的路径(如~/Projects)。
拖入“获取已添加的项目”操作,它会自动捕获所有新增或发生修改的文件项目。
接着添加“复制 Finder 项目”,将目标路径设置为/Volumes/BackupDrive/Projects。
可选:在复制前增加“过滤 Finder 项目”,条件设置为“修改日期在过去 5 分钟内”,以避免重复同步尚未保存完成的大体积文件。
保存后,还需要手动启用:在 Finder 中右键点击你要监控的文件夹 → “配置文件夹操作” → 勾选刚刚保存的工作流名称。
