节点 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 的节点可以