节点 cron 未在 EC2 上运行

Posted

技术标签:

【中文标题】节点 cron 未在 EC2 上运行【英文标题】:Node cron not running on EC2 【发布时间】:2018-06-16 06:39:47 【问题描述】:

我在 EC2 上将 python 和节点脚本设置为 cron 作业。 python 脚本运行,但节点脚本不运行。从命令行手动激活时,节点脚本运行良好。这是一个简单的脚本,它判断今天是否是假期,然后将布尔答案放入名为 isHoliday.csv 的文件中。

到目前为止我已经尝试过:

    设置为 crontab 使用:crontab -e(此图片中的最后一个条目) 设置为 crontab 使用:sudo crontab -e 创建了一个奇怪的 cron.d 文件,将 cron 详细信息放入其中,然后 chmod'd 0644,使用:sudo crontab -e;如上所示。 cron.d 内容:

我看到日志文件在 sudo cron 中名为 holiday_script.log,在 cron.d 文件中名为 holiday.log,但两个日志文件都没有创建。

    将相对路径替换为绝对路径。 (但我认为这仍然是最有可能的罪魁祸首。)

holiday.js 文件中的代码:

// Check if it is a holiday, t/f
var holidayChecker = require('usa-holidays');
var date = new Date();
var holidayObj = holidayChecker.make(date);
var isHoliday = !holidayObj.isBusinessDay();

// put the answer into a file so it can be read by python crons
var fs = require('fs');
fs.writeFile("/home/ec2-user/stack/isHoliday.csv", isHoliday, function(err) 
    if(err) 
        return console.log(err);
    
);

【问题讨论】:

【参考方案1】:

我不知道确切的解决方案,但您可以通过移动到不同的目录来查看您的 cron 日志。首次登录 EC2 时,请执行两次:cd .. 这将带您进入两个目录。然后你需要像这样将用户切换到 sudo:sudo su 然后移动到 var/log 文件夹。应该有一个名为“cron”的文件。由于您将 crons 设置为 *****,因此该文件应该每秒都充满数据。输入:tail -f cron。这样您就可以实时查看 crons 的执行情况。

此外,“邮件”通知:导航到该文件夹​​并使用less 阅读邮件。该文件将有更多线索。使用向下箭头向下滚动。

这不是答案,但它会帮助你前进一点。

【讨论】:

跟踪邮件是关键。它说“节点”未定义。更改节点的路径使其工作。最终的 cron 是这样的: * * * * * /home/ec2-user/stack/node/node /home/ec2-user/stack/holiday.js

以上是关于节点 cron 未在 EC2 上运行的主要内容,如果未能解决你的问题,请参考以下文章

在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以

React Native 未在 localhost 上运行

DataStax OpsCenter 未在 centos dse 集群上启动

节点cron,每隔午夜运行一次

Firestore 触发器未在模拟器上运行

Apache Spark Ec2:只能复制到 0 个节点,而不是 1 个