在 crontab 中使用 Gnu Make

Gnumake in crontab

我正在尝试从 cron 中 运行 创建文件。我的命令很简单:

* * * * * /usr/bin/make -C "/home/path_to_file/" -f "/home/path_to_file/Makefile"

它 运行 通常在 shell 中,但它在 crontab 中失败。

它可能会失败,因为 PATH 未设置。您应该在 Makefile 中设置 PATH 并将其导出:

  PATH := /usr/bin:/usr/local/bin:/some/other/dir
  export PATH

您可以通过指定非常有限的环境来测试您的命令:

/usr/bin/env -i PATH=directorylist_here HOME=$HOME your_cron_cmd

PS:通常,cron 会将 stdout 和 stderr 上的任何输出邮寄给您。您是否检查过收件箱中的 cron 邮件?这些可能会提供额外的线索。 邮件被发送到 crontab 所属用户的邮箱。因此,如果这是 运行 作为 root,它将在 root 的收件箱中。 (当然这只有在 stdin+stdout 没有被重定向到 /dev/null 时才有效)。在 Unix 系统上,您可以使用 mailmailx 命令阅读收件箱邮件。