我正在尝试从cron中运行一个make文件。我的命令非常简单:
* * * * * /usr/bin/make -C "/home/path_to_file/" -f "/home/path_to_file/Makefile"
它在shell中正常运行,但在crontab中失败。
答案 0 :(得分:1)
可能会失败,因为未设置name
。您应该在PATH
中设置PATH并将其导出:
Makefile
您可以通过指定非常有限的环境来测试您的命令:
PATH := /usr/bin:/usr/local/bin:/some/other/dir
export PATH
PS:通常stdout和stderr上的任何输出都由cron邮寄给你。您是否在收件箱中查看了cron邮件?这些可能提供额外的线索。
邮件将发送到crontab所属用户的邮箱。因此,如果以root身份运行,则它将位于root的收件箱中。 (当然,只有当stdin + stdout没有被重定向到/usr/bin/env -i PATH=directorylist_here HOME=$HOME your_cron_cmd
时,这才有效。在Unix系统上,您可以使用/dev/null
或mail
命令读取收件箱邮件。