node-crontab
A module for creating, reading, updating, and deleting system cron jobs
Installation
$ npm install crontab
Examples
Working with jobs
require('crontab').load(function(err, crontab) {
var job = crontab.create('ls -la', '0 7 * * 1,2,3,4,5');
var job = crontab.create('ls -lh', new Date(1400373907766));
var job = crontab.create('ls -lt', null, 'comment 2');
var job = crontab.create('ls -la', '@reboot');
var job = crontab.create();
if (job == null) {
console.log('failed to create job');
}
var job = crontab.create('ls -lr', '0 7 * * 1,2,3,4,5', 'comment 3');
crontab.remove(job);
crontab.remove({command:'ls -lh', comment:/comment 2/});
var job = crontab.create('ls -l');
job.minute().at(0);
job.hour().between(8, 17);
job.dow().between('mon', 'fri');
var job = crontab.create('ls -l');
job.hour().between(19, 0).every(2);
job.hour().between(0, 6).every(2);
job.dow().between('mon', 'fri');
var job = crontab.create('ls -l');
job.month().between('jun', 'sep');
var job = crontab.create('ls -l');
job.minute().at(30);
job.hour().at(9);
job.dom().on(24);
job.month().in('dec');
var jobs = crontab.jobs();
var jobs = crontab.jobs({command:'ls -l', comment:/comment 1/});
crontab.reset();
crontab.save(function(err, crontab) {
});
console.log(crontab);
});
Working with environment variables
require('crontab').load(function(err, crontab) {
var vars = crontab.vars();
var vars = crontab.vars({name: 'FOO'});
var vars = crontab.vars({val: 'bar'});
var vars = crontab.vars({name: 'FOO', val: 'bar'});
var vars = crontab.vars('FOO');
crontab.vars().add('FOO', 'foo');
crontab.vars().add({'FOO':'foo', 'BAR':'1'});
crontab.vars().rm();
crontab.vars({name: 'FOO'}).rm();
crontab.save(function(err, crontab) {
});
});
Naive reboot
require('crontab').load(function(err, crontab) {
if (err) {
return console.error(err);
}
var command = 'ls -l';
crontab.remove({command:command});
crontab.create(command, '@reboot');
crontab.save(function(err, crontab) {
});
});
More robust reboot and forever
require('crontab').load(function(err, crontab) {
if (err) {
return console.error(err);
}
var uuid = '64d967a0-120b-11e0-ac64-0800200c9a66';
var nodePath = process.execPath.split('/').slice(0, -1).join('/');
var exportCommand = 'export PATH=' + nodePath + ':$PATH';
var foreverCommand = require('path').join(__dirname, 'node_modules', 'forever', 'bin', 'forever');
var sysCommand = exportCommand + ' && ' + foreverCommand + ' start ' + __filename;
crontab.remove({comment:uuid});
crontab.create(sysCommand, '@reboot', uuid);
crontab.save(function(err, crontab) {
console.log(err)
});
});
Specific user
require('crontab').load('alice', function(err, crontab) {
if (err) {
return console.error(err);
}
crontab.save(function(err, crontab) {
console.log(err)
});
});
Author
Blagovest Dachev
Copyright
- Blagovest Dachev (2010-2014)
- Martin Owens (2009-2012)
Credits
This is a JavaScript port of a Python package by Martin Owens
License
GPL3