首页 > 解决方案 > cronjob 没有在 macos 上执行

问题描述

这应该每天凌晨 1 点运行一次:

0 1 * * * pod repo update | while IFS= read -r line; do printf '%s %s\n' "$(date)" "$line"; done >> /Users/ci/podRepoUpdate.log 2>&1

但是日志 ( /Users/ci/podRepoUpdate.log) 保持为空。

如果我运行命令

pod repo update | while IFS= read -r line; do printf '%s %s\n' "$(date)" "$line"; done >> /Users/ci/podRepoUpdate.log 2>&1

手动,它的工作原理。我在这里想念什么?

标签: macoscron

解决方案


正如Gordon Davidsson所建议的那样,将命令放入 shell 脚本中是可行的。这是我现在的 crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 1 * * * /Users/ci/podRepoUpdate.sh

外壳脚本:

#!/bin/sh -e

pod repo update | ts '[%Y-%m-%d %H:%M:%S]' >> /Users/ci/podRepoUpdate.log 2>&1

推荐阅读