节点cron未在EC2上运行

时间:2018-01-06 18:53:50

标签: javascript amazon-ec2 cron

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

到目前为止我已尝试过:

  1. 使用以下命令设置为crontab:crontab -e(此图片中的最后一项) enter image description here
  2. 使用以下命令设置为crontab:sudo crontab -e enter image description here
  3. 创建了一个奇怪的cron.d文件,将cron详细信息放入其中,然后chmod' dd为0644,使用:sudo crontab -e;如上所示。 cron.d内容: enter image description here
  4. 我看到日志文件在sudo cron中名为holiday_script.log,在cron.d文件中名为holiday.log,但两个日志文件都没有创建。

    1. 用绝对路径替换相对路径。 (但我认为这仍然是最可能的罪魁祸首。)
    2. 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);
          }
      });
      

      enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

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