Javascript 节点cron未在EC2上运行

Javascript 节点cron未在EC2上运行,javascript,amazon-ec2,cron,Javascript,Amazon Ec2,Cron,我在EC2上将python和节点脚本设置为cron作业。python脚本运行,但节点脚本不运行。当从命令行手动激活时,节点脚本运行良好。这是一个简单的脚本,找出今天是否是假日,然后将boolian的答案放入名为isHoliday.csv的文件中 到目前为止,我所尝试的: 使用:crontab-e(此pic中的最后一个条目)设置为crontab 使用sudo crontab-e设置为crontab 创建了一个奇怪的cron.d文件,将cron详细信息放入其中,并使用:sudo crontab-

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

到目前为止,我所尝试的:

  • 使用:crontab-e(此pic中的最后一个条目)设置为crontab
  • 使用sudo crontab-e设置为crontab
  • 创建了一个奇怪的cron.d文件,将cron详细信息放入其中,并使用: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);
        }
    });
    

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

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


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

    跟踪邮件是关键。它说“节点”未定义。将路径更改为节点使其工作。最后一个cron如下:****/home/ec2 user/stack/node/node/home/ec2 user/stack/holiday.js