将NPM脚本作为crontab(Ubuntu)运行不起作用

时间:2020-06-04 20:48:43

标签: node.js ubuntu npm cron

我有一个NodeJS脚本,该脚本会根据时间删除旧记录,当脚本运行时,它将从日期x到日期y的所有记录删除,如果我将再次以正确的方式重新运行此脚本,它将说:“找不到要删除的记录”等。

该脚本公开为NPM脚本,以方便使用,它在我的package.json中定义如下:

{
    ...
    "scripts": {
        "deleteOldRecords": "cd server && cross-env NODE_ENV=prod node scripts/deleteOldRecords.js"
    }
    ...
}

我希望NPM每3分钟运行一次,所以我在crontab中定义了它,如下所示:

*/3 * * * * cd /my/project && npm run deleteOldRecords > /dev/null 2>&1

现在,我正在检查/var/log/syslog,并且确实看到一条输出,指示作业运行正常:

Jun  4 20:39:01 localhost CRON[19497]: (node-user) CMD (cd /my/project && npm run deleteOldRecords > /dev/null 2>&1)

问题是它不能执行真正的操作,当我再次从控制台手动运行它时:

node-user@ip-0-0-0-0:/$ cd /my/project && npm run deleteOldRecords > /dev/null 2>&1

它正在查找要删除的记录并成功删除它们,这应该是这样的,因为运行crontab应该删除它们,并且手动运行应该说“我找不到要删除的记录”。

知道为什么会发生吗?

0 个答案:

没有答案
相关问题