【问题标题】:CRONTAB: Cron Job Executing But Not Writing To FileCRONTAB:Cron 作业正在执行但未写入文件
【发布时间】:2021-10-17 21:51:44
【问题描述】:

我在这里有一个 crontab 工作要推送到 Github。

如果我手动运行我的脚本,它可以工作,但是当它使用 cron 作业执行时,我的 txt 文件没有更新,也没有向上游推送任何内容。

我也确保运行sudo chmod +x /Users/myuser/Development/auto-cal/test.sh

不确定我是否遗漏了任何其他内容 - 任何指导将不胜感激!

Shell 脚本:

#!/usr/bin/env bash

echo $((1 + $RANDOM % 100)) > main.txt

git add .

DATE=$(date)

git commit -m "$DATE"

git push -u origin main

osascript -e 'display notification "pushed to remote" with title "SUCCESS"'

Crontab 作业:

* * * * * sh /Users/myuser/Development/auto-cal/test.sh >/dev/null 2>&1

【问题讨论】:

  • crond 正在运行吗?
  • 删除>/dev/null 2>&1
  • 你使用sh还是bash
  • 您正在尝试使用 sh 运行具有 bash 特定功能的 bash 脚本。改用 bash。
  • @illywilly :扔掉标准错误然后试图猜测出了什么问题,这不仅仅是勇敢的。不要那样做。另外,我在您的脚本中看不到任何更新操作。顺便说一句,正在创建 $HOME/main.txt(检查其时间戳)。

标签: bash shell cron


【解决方案1】:

建议以下test.sh 添加您当前的用户登录脚本和环境。尤其是当前用户的 PATH 变量。

#!/usr/bin/env bash
source ~/.bash_profile

echo $((1 + $RANDOM % 100)) > main.txt

git add .

DATE=$(date)

git commit -m "$DATE"

git push -u origin main

osascript -e 'display notification "pushed to remote" with title "SUCCESS"'

【讨论】:

    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 2019-05-05
    • 2021-04-26
    • 2021-08-21
    相关资源
    最近更新 更多