在OS X上通过crontab执行Node.JS脚本

在OS X上通过crontab执行Node.JS脚本,node.js,cron,Node.js,Cron,我一直在试图弄清楚如何在MacOSX上使用crontab。我编写了一个节点脚本,希望能够以预定的方式执行。这是我在crontab文件中使用的行 30 * * * * /usr/local/bin/node /Users/pmanca/Google Drive/JavaScript/code/Peter/marketing-tests/testBackup.js 但它似乎没有执行。有人能看出我做错了什么吗?另外,在mac或linux服务器上是否有其他方法来完成我所寻找的任务?在linux中,您也

我一直在试图弄清楚如何在MacOSX上使用crontab。我编写了一个节点脚本,希望能够以预定的方式执行。这是我在crontab文件中使用的行

30 * * * * /usr/local/bin/node /Users/pmanca/Google Drive/JavaScript/code/Peter/marketing-tests/testBackup.js

但它似乎没有执行。有人能看出我做错了什么吗?另外,在mac或linux服务器上是否有其他方法来完成我所寻找的任务?在linux中,您也可以将同一行用于crontab作业(除了需要更改的文件路径之外)

您可以使用两个npm包中的一个,或者

两者都可以在linux和OS X上工作。如果您的任务是轻量级的,并且不需要将作业持久化到db中,那么Cron是最好的。Agenda使用mongodb实现持久性

您可以在cron中将作业配置为:

var CronJob = require('cron').CronJob;
var job = new CronJob({
  cronTime:  '00 */30 * * * *',
  onTick: function() {
    /*
     * Runs every 30 minutes, every hour, every day, all week
     */
  },
  start: false,
  timeZone: 'America/Los_Angeles'
});
job.start();
要在服务器上后台运行,可以使用


记住,cron在左边还有第六个位置,持续数秒。否则语法相同。

默认情况下
cron
进程没有访问macos中磁盘所需的权限。所以,您应该允许对
cron
进程的完全访问磁盘。对于这一个,将
/usr/sbin/cron
添加到安全和隐私下允许的完整磁盘访问过程中。更多信息请参见

尝试逃离空间:
30****/usr/local/bin/node/Users/pmanca/Google\Drive/JavaScript/code/Peter/marketing tests/testBackup.js
哦,这太棒了。我要运行的任务是备份MongoDB中的数据库。你仍然认为cron是正确的方法吗?什么是议程使用mongodb进行持久化?议程将您定义的作业存储到mongo集合(我猜是agendaJobs)中,并根据其中存储的值运行作业。另一方面,Cron使用系统时间来运行脚本中定义的作业。我个人对agenda的体验不好,因为它依赖于db,并且很难设置时区相关的作业。我至少在两个生产实例上使用了cron,其中一个需要洛杉矶时区。工作顺利,没有故障。因为我已经在运行mongo服务器了,您认为这样做有什么好处吗?我不确定我是否真的需要这份工作来生活在db或notok很酷谢谢你的个人经历。我现在就用cron试试