macOS中实现键盘热键触发的自动化备份需三步:编写健壮rsync脚本(含锁文件、路径检查、通知)、赋予执行权限、通过Automator快速操作绑定全局热键;推荐用/usr/bin/rsync增量同步并配合osascript弹窗提示。
在 macos 中实现键盘热键触发的自动化存储备份,核心是三步:写好备份脚本、赋予执行权限、用系统快捷键工具绑定热键。关键在于脚本要可靠(比如处理路径空格、判断源目录存在、避免重复运行),热键绑定要稳定(不依赖前台应用),且备份过程对用户透明。
写一个健壮的备份 Shell 脚本
用 rsync 做增量备份最稳妥。以下是一个常用模板,保存为 ~/backup.sh:
(替换 /path/to/source 和 /path/to/backup 为你的真实路径,如 ~/Documents 和 /Volumes/BackupDrive/Documents)
#!/bin/bash
<p>SOURCE="/path/to/source"
DEST="/path/to/backup"
LOCKFILE="/tmp/backup_running.lock"</p><h1>防止重复运行</h1><p>if [ -f "$LOCKFILE" ]; then
exit 1
fi
touch "$LOCKFILE"
trap 'rm -f "$LOCKFILE"' EXIT</p><h1>检查源目录是否存在</h1><p>if [ ! -d "$SOURCE" ]; then
osascript -e 'display notification "源目录不存在,请检查配置" with title "备份失败"'
exit 1
fi</p><h1>检查目标卷是否已挂载</h1><p>if [ ! -d "$DEST" ]; then
osascript -e 'display notification "备份目标未连接或不可访问" with title "备份失败"'
exit 1
fi</p><h1>执行静默 rsync 备份(保留权限、硬链接、跳过已存在相同文件)</h1><p>/usr/bin/rsync -a --delete --exclude=".DS_Store" "$SOURCE/" "$DEST/"</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/skill4368" title="macos-suite-readonly"><img
src="https://img.php.cn/upload/skill/000/000/081/179004425649113.jpg" alt="macos-suite-readonly" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/skill4368" title="macos-suite-readonly">macos-suite-readonly</a>
<p>macOS 只读查询:Mail 未读、Calendar 日程、Notes 搜索、Stocks 行情(输出 JSON)。</p>
</div>
<a href="/xiazai/skill4368" title="macos-suite-readonly" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><h1>完成后弹窗提示(可选)</h1><p>osascript -e 'display notification "备份已完成 ✅" with title "自动备份"'
- 用
#!/bin/bash开头,确保使用系统 bash(不是 zsh);macOS 的/usr/bin/rsync默认支持 ACL 和资源派生,比 Homebrew 版更兼容 - 加了锁文件和
trap,避免热键连按导致多个 rsync 冲突 - 用
osascript发送通知,不打断当前操作,比终端弹窗更友好 -
"$SOURCE/"结尾的斜杠很重要——它表示同步内容而非整个文件夹名
赋予脚本执行权限并测试
打开终端,依次运行:
chmod +x ~/backup.sh ~/backup.sh
首次运行会提示是否允许终端访问磁盘,点“好”即可。确认通知弹出、目标目录内容更新,说明脚本工作正常。
绑定全局热键触发脚本
macOS 自带的“快捷键”设置无法直接运行 Shell 脚本,需借助辅助工具。推荐两种轻量方案:
-
使用 Automator 制作“快速操作”(推荐):
打开 Automator → 新建“快速操作” → 在左栏搜索“运行 Shell 脚本”,拖入右侧 → 在框中输入:~/backup.sh
→ 右上角设为“工作流程收到‘无输入’,处于‘任何应用程序’” → 保存为“立即备份”。
然后进入 系统设置 > 键盘 > 快捷键 > 服务,找到“快速操作 > 立即备份”,勾选并分配热键(如 ⌘⌥B) -
用第三方工具如 Karabiner-Elements(适合高级用户):
安装后,在 Complex Modifications 中导入自定义规则,将某组合键映射为执行sh ~/backup.sh。优势是响应更快、支持更多键位,但配置稍复杂
进阶建议:让备份更安心
- 在脚本开头加
cd "$(dirname "$0")",确保相对路径可靠(如果后续扩展脚本功能) - 把重要路径写进配置变量,再用
source ~/.backup_config加载,方便多设备复用 - 定期用
log show --predicate 'eventMessage contains "备份已完成"' --last 7d查看备份历史 - 若备份大文件(如照片库),可在 rsync 后加
sync命令确保数据真正写入磁盘

















