Javascript 节点Curely brake需要断开Cron

Javascript 节点Curely brake需要断开Cron,javascript,node.js,linux,cron,Javascript,Node.js,Linux,Cron,我已经创建了一个节点脚本,我想用root的cron来调度它。下面列出了crontab条目 SHELL=/bin/bash 0 1 * * * (time node /home/user/test/index.js) > /tmp/dbbackup 2>&1 我可以运行与普通用户或root用户完全相同的命令而不会出错。但是,当从调度程序执行时,它会立即中断并出现语法错误 const {exec} = require('child_process'); ^ Syn

我已经创建了一个节点脚本,我想用root的cron来调度它。下面列出了crontab条目

SHELL=/bin/bash
0 1 * * * (time node /home/user/test/index.js) > /tmp/dbbackup 2>&1
我可以运行与普通用户或root用户完全相同的命令而不会出错。但是,当从调度程序执行时,它会立即中断并出现语法错误

const {exec} = require('child_process');
      ^

SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:140:18)
    at node.js:1043:3
我昨天读到一些关于没有运行足够版本的Node的文章(我现在很难链接到),但是在更新之后,我仍然看到了相同的结果

 node --version
v12.19.0

我做错了什么?谢谢

解决方案是将which node和where is node结合起来。显然,我在/usr/bin/node上安装了v4.8.2,在/usr/local/bin/node上安装了v12.19.0。意识到这一点后,我只需在cron中指定要调用的版本。

哪个
根节点运行相同的版本?i、 e.
sudo su-
节点--version
?由于您正在根用户的crontab中调度它,
节点
将与根用户路径中的
节点
一起运行。感谢您的回复!上面的
节点--version
由root用户执行。常规使用和根目录都更新为
v12.19.0
,并且从终端执行脚本时不会出错。我想知道我的cron声明
SHELL=/bin/bash
是否在做什么?但这是我唯一能想到的包装time命令的方法。好吧,你可以尝试将
time节点/path/index.js
移动到/root/下的脚本中,然后调用该脚本。在该脚本中,您还可以运行
节点--version
哪个节点
,并将它们输出到某个地方,以帮助您查看是否与节点版本有关。再次感谢!解决方案是结合
哪个节点
哪个节点
。显然,我已将
v4.8.2
安装到
/usr/bin/node
v12.19.0
安装到
/usr/local/bin/node
。在意识到这一点后,我只需指定在cron中调用哪个版本。太好了!一定要加上这个作为答案!