mac的automator可通过三种方式实现定时同步:①配合日历提醒实现每日图形化同步;②结合launchd后台运行,稳定可靠;③使用文件夹操作响应实时变更。均需添加挂载判断、防重复、日志记录等可靠性措施。
mac 自带的 automator 本身不直接支持“定时同步”,但它能和系统机制(如日历提醒、launchd)配合,实现稳定可靠的定时文件夹同步。关键不是 automator 单独干活,而是它封装操作逻辑,再由系统在指定时间触发执行。
用 Automator + 日历提醒实现每日同步
适合大多数用户,图形化操作,无需命令行,但需确保 Mac 在设定时间处于唤醒状态。
- 打开 Automator,新建“快速操作”文稿
- 从操作库拖入“运行 Shell 脚本”,在脚本框中写同步命令,例如:
rsync -av --delete ~/Documents/ /Volumes/BackupDrive/Documents/ - 勾选“工作流接收‘无输入’”,并启用“在访达中可用”
- 保存为“每日同步文档文件夹”
- 打开“日历”App,新建重复事件(如每天上午10点),添加提醒 → 选择“运行快速操作” → 挑选刚保存的名称
用 Automator 应用 + launchd 实现后台定时同步
更可靠,不受界面是否活跃影响,适合长期自动运行,所有配置都在用户目录下,安全可控。
- 新建 Automator 文稿,选择“应用程序”类型
- 添加“运行 Shell 脚本”操作,填入 rsync 命令(建议加路径检查和日志,如:
if [ -d "/Volumes/BackupDrive" ]; then rsync -av --delete ~/Documents/ /Volumes/BackupDrive/Documents/ >> ~/Library/Logs/sync.log 2>&1; fi - 保存为“DocSync.app”,放在 ~/Applications(可手动创建)
- 在终端中创建用户级 launchd 配置:
mkdir -p ~/Library/LaunchAgents
touch ~/Library/LaunchAgents/com.user.docsync.plist - 用文本编辑器打开该 plist,填入标准格式,设置 StartInterval(如 86400 秒 = 每天一次)或 StartCalendarInterval(指定小时分钟)
- 加载配置:launchctl load ~/Library/LaunchAgents/com.user.docsync.plist
搭配文件夹操作实现“有新内容就同步”
适用于希望源文件夹一有更新就立刻备份的场景,响应快、无需等待定时,但只对新增/修改文件生效。
- 新建 Automator 文稿,选择“文件夹操作”类型
- 指定监控的源文件夹(如 ~/Projects)
- 添加“获取已添加的项目”操作(自动接收新进文件)
- 接“复制 Finder 项目”,目标设为备份位置(如 /Volumes/BackupDrive/Projects)
- 可选:加“运行 Shell 脚本”做增量校验或清理旧备份
- 保存后,该文件夹即具备自动响应能力
提升同步可靠性的几个细节
单纯复制容易出错,加几条小规则能让自动化真正省心。
- 判断备份盘是否挂载:在脚本开头加 [ -d "/Volumes/BackupDrive" ] || exit 0,避免目标丢失时误删或报错
- 防止重复运行:用 lockfile 或检查 rsync 进程,例如 pgrep -f "rsync.*Documents" &> /dev/null && exit 0
- 记录日志:在 rsync 命令后加 >> ~/Library/Logs/sync.log 2>&1,方便排查失败原因
- 通知完成:同步结束后加 osascript -e 'display notification "同步已完成" with title "备份助手"'











