我一直试图弄清楚如何在我的mac OS X上使用crontabs我编写了一个节点脚本,我希望能够以预定的方式执行。这是我在crontab文件中使用的行。
30 * * * * /usr/local/bin/node /Users/pmanca/Google Drive/JavaScript/code/Peter/marketing-tests/testBackup.js
它似乎并没有执行。谁能看到我做错了什么?还有另一种方法在mac或linux服务器上完成我正在寻找的东西吗?你也可以在linux中使用相同的行作为crontab作业(除了需要更改的文件路径)吗?
答案 0 :(得分:0)
两者都适用于Linux和OS X.如果您的任务是轻量级的,并且您不需要将您的工作持久保存到数据库中,那么Cron最好。议程使用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();
要在服务器后台运行,您可以使用forever
运行它记住cron在左边还有第6个位置。否则语法相同。
答案 1 :(得分:0)
默认情况下,cron
进程没有访问macOS中磁盘所需的权限。因此,您应该允许对cron
进程具有完全访问权限的磁盘。为此,请在“安全性和隐私”下将/usr/sbin/cron
添加到允许的全盘访问过程中。更多信息,请参见How to Fix Cron Permission Issues in MacOS Catalina & Mojave