2017-03-27 37 views
1

私はMac OS X上でcrontabを使う方法を解明しようとしています。スケジュールされた方法で実行できるようにノードスクリプトが書かれています。ここに私のcrontabファイルで使用している行があります。OS Xのcrontab経由でNode.JSスクリプトを実行

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

ただし、実行中ではありません。誰でも私が間違っていることを見ることができますか?また、私が探しているものを達成するために、MacまたはLinuxサーバ上に別の方法がありますか?また、linuxのcrontabジョブと同じ行を使用することもできます(変更が必要なファイルパスの他に)?

+2

スペースをエスケープしてみてください: '30 * * * */usr/local/bin/node/Users/pmanca/Google \ Drive/JavaScript/code/Peter/marketing-tests/testBackup.js' – amenadiel

答えて

0

あなたのタスクは、軽量であり、あなたがDBに永続化するためにあなたの仕事を必要としない場合は、LinuxとOS Xでのcronの両方の作業が最善である2つのNPMパッケージのいずれか、cronまたはagenda

を使用することができます。アジェンダは永続性のためにmongodbを使用します。

あなたはようにcronジョブを設定することができます:あなたはcronのは、秒間左に追加の6位を持って覚えていforever

でそれを実行することができ、サーバー上でバックグラウンドで実行するには

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(); 

。それ以外の場合、構文は同じです。

+0

ああこれは最高です。私が実行したいタスクは、MongoDBのデータベースをバックアップすることです。あなたはまだcronが正しい方法だと思いますか?アジェンダが永続性のためにmongodbを使用することは、あなたが何を意味するのですか? – Peter3

+0

アジェンダはあなたが定義したジョブをmongoコレクション(私が推測するagendaJobs)に保存し、それに格納されている値に従ってジョブを実行します。 一方、Cronは、実行するスクリプトの一部として定義されたジョブのシステム時間を使用します。 –

+0

私は個人的にはDBへの依存とタイムゾーンに関連するジョブの設定の難しさのため、アジェンダの悪い経験をしていました。私は少なくとも2つのプロダクションインスタンスでcronを使用していますが、そのうちの1つはロサンゼルスタイムゾーンが必要です。不具合なくスムーズに作業できます。 –

関連する問題