在OS X上通过crontab执行Node.JS脚本
我一直在试图弄清楚如何在MacOSX上使用crontab。我编写了一个节点脚本,希望能够以预定的方式执行。这是我在crontab文件中使用的行在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中,您也
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试试