【问题标题】:How to use a cron job? [duplicate]如何使用 cron 作业? [复制]
【发布时间】:2014-08-01 00:18:57
【问题描述】:

我正在使用 cpanel,我想做一个每小时执行某个 node.js 脚本的 cron 作业。我通过选择每小时来设置它,并在命令框中输入cd node-bin && node check-up.js,但一个小时后它没有执行nodejs脚本。我究竟做错了什么?您是否必须指定将结果放在哪里(使用>)?它不从主目录运行命令吗?我在共享托管服务器上,所以我假设它从主目录运行它,但谁知道...有什么想法吗?

更新:

我将其设置为通过电子邮件将结果发送给我,现在它说找不到命令 node(即使我可以从 SSH 运行它)。为什么?

【问题讨论】:

  • 如果节点在交互式会话中的二分查找路径上,那么which node你会给出可执行文件的绝对路径,而这个绝对路径就是#!之后需要的!跨度>

标签: linux node.js cron


【解决方案1】:
  • 确保 crontab 末尾有一个空行
  • 添加 * * * * * env > /tmp/env.txt 并检查缺少哪个环境变量,因为 crontab 环境通常不同。

【讨论】:

  • 正如您在我的问题中看到的(现在我更新了它),似乎缺少节点。我该怎么办?
  • @Markasoftware,试试cd node-bin && ./node check-up.js
  • 好的,但这不是行不通吗?节点可执行文件不在node-bin 文件夹中。那只是我放置所有节点文件的文件夹
  • @Markasoftware,对不起,我认为这是 node 可执行文件所在的位置,我的意思是 /full/path/to/node check-up.js
【解决方案2】:

这是运行 cron 作业的两个基本步骤:

How can you execute a Node.js script via a cron job?

首先,添加

#!/usr/local/bin/node

到您的 node.js 文件的开头,并授予运行权限 (

chmod 777 node.js

) (您还可以通过键入来检查它是否正常

./node.js 

在终端中) 如果没问题,那么您应该在 cron 作业中指定脚本的完整路径,仅此而已! 此外,正如 user3678068 所指出的,您应该指定输出文件的完整路径! 希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2016-06-14
    相关资源
    最近更新 更多