automator 无法直接控制 cups 底层队列,但可封装终端命令实现一键清空、异常提醒和提交即打印等轻量运维;需配合 shell 脚本、applescript 和文件夹操作,高权限操作须谨慎集成 sudo。
macos 自带的 automator 不能直接接管 cups 打印队列的底层控制(如 cancel、lprm、cupsreject),但它能高效串联图形界面操作与终端命令,把重复性运维动作变成一键触发的工作流。适合日常快速清空、条件化暂停、或配合通知提醒的轻量级管理场景。
用 Automator 调用终端命令批量清理任务
终端命令本身足够快,但每次输一遍容易出错、记不住 ID 或漏 sudo。Automator 可封装成图形按钮:
- 新建「应用程序」类型文稿,拖入「运行 Shell 脚本」操作
- 语言选 /bin/zsh,脚本框中粘贴:
cancel -a 2>/dev/null
echo "所有打印任务已清空" - 保存为「一键清空队列.app」,双击即执行,无需打开终端
- 如需清空指定打印机,把命令换成:cancel -a -P "Brother_MFC_J690DW"(引号不可省)
自动检测卡死队列并弹窗提醒
当某个打印机长时间处于 paused 或 stopped 状态,可能预示队列异常。可用 Automator 搭配 shell 判断+通知:
- 添加「运行 Shell 脚本」,内容为:
if lpstat -p "Canon_iP110" 2>/dev/null | grep -q "paused\|stopped"; then
osascript -e 'display notification "Canon_iP110 队列异常,请检查" with title "打印运维提醒"' - 再接一个「运行 AppleScript」操作,自动打开该打印机的队列窗口:
tell application "System Events"
keystroke "p" using {command down, option down}
end tell(模拟快捷键 Command+Option+P)
结合文件夹操作实现“提交即监控”工作流
适用于设计/排版团队:PDF 一放进指定文件夹,就自动打印+同步清空队列,避免遗忘或堆积:
- 新建「文件夹操作」,选定 ~/Documents/ToPrint/ 为监控目录
- 添加「获取指定的 Finder 项目」→「重复以下操作」→「打印文稿」(设好默认打印机和份数)
- 最后加一个「运行 Shell 脚本」:sleep 3; cancel -a(等打印启动后 3 秒清空,防止误删)
- 启用后,往文件夹拖 PDF,系统自动走完“发任务→进队列→清残留”闭环
注意事项与边界说明
Automator 是调度层,不是驱动层。它无法替代终端命令处理已锁定任务(如灰色 × 图标)、也不能重启 cupsd 服务——这些仍需手动或脚本调用 sudo。但你可以把它作为入口:在「运行 Shell 脚本」里写上 sudo launchctl stop org.cups.cupsd && sudo launchctl start org.cups.cupsd,并勾选「在后台运行」,再配上密码提示框(用 osascript 弹窗输入),就能把高权限操作安全封装起来。











