通过cron将Grunt和Node作为批处理文件运行



我最不希望遇到的问题。

我有一个咕哝的文件,需要每分钟运行一次。它运行JSHint,捕获输出,并通过AmazonSES发送电子邮件。它在命令行上运行时运行良好。然而,当运行cron时,它只是无声地失败。什么也没发生。我把发送的电子邮件分解成一个单独的节点文件。它不会自己运行。我从第二个文件中读取了所有文件,并尝试自己运行,只需发送一封带有硬编码值的电子邮件。没有骰子。同样,从命令行运行时运行良好。

我可以在cron日志中看到它们正在运行的条目。我已经开放了对所有受影响的文件和目录的访问,任何人都可以执行。我已经对所有目录路径进行了硬编码,以确保它不会因为找不到文件而默默失败。

以下是cron条目:*/1***sh/var/test/trunk/build/batch_jshint.sh

这是shell脚本:

#!/bin/bash
export PATH=$PATH:/opt/node/bin
cd /var/test/trunk/build/
grunt jshint_check --gruntfile /var/test/trunk/build/Grunt_jshint.js
node /var/test/trunk/build/send_jshint_email.js

Cron日志:7月18日22:23:01 ip-10-251-25-8 CRON[2923]:(ubuntu)CMD(sh/var/SmartGlass/sg2-fl/trunk/build/batch_jshint.sh)7月18日22:23:01 ip-10-251-25-8 CRON[2924]:(ubuntu)CMD(sh/var/SmartGlass/sg2-fl/trunk/build/test.sh)7月18日22:23:01 ip-10-251-25-8 CRON[2925]:(ubuntu)CMD(/usr/bin/ouptime>/tmp/ouptime)7月18日22:23:01 ip-10-251-25-8 CRON[2922]:(CRON)信息(未安装MTA,丢弃输出)7月18日22:24:01 ip-10-251-25-8 CRON[2932]:(ubuntu)CMD(sh/var/SmartGlass/sg2-fl/trunk/build/batch_jshint.sh)7月18日22:24:01 ip-10-251-25-8 CRON[2933]:(ubuntu)CMD(sh/var/SmartGlass/sg2-fl/trunk/build/test.sh)7月18日22:24:01 ip-10-251-25-8 CRON[2934]:(ubuntu)CMD(/usr/bin/ouptime>/tmp/ouptime)7月18日22:24:01 ip-10-251-25-8 CRON[2931]:(CRON)信息(未安装MTA,丢弃输出)

任何建议都将被感激地接受,因为我现在几乎被难住了。

当然,有一件事我没有检查。我必须在批处理文件中包括节点的路径和grunt可执行文件。尽管我在登录时不必这样做,而且是同一个用户在运行cron作业。

相关内容

最新更新