Я бы не рекомендовал просматривать несколько записей cron для одного приложения - потому что если у вас есть несколько записей для нескольких приложений, оно станет очень большим, и добавление некоторых самостоятельно станет очень трудным.
Когда требуемое время выполнения никогда не меняется, просто создайте файл "cron.sh" в корневом каталоге файлов js вашего узла и запишите в него все команды.
crontab -e: 1 * * * * root /home/project/cron.sh > /home/project/cron.log
Содержимое /home/project/cron.sh:
#!/bin/bash
# Change directory:
cd /home/project/
# Run the script with all parameters
node ./app.js 103
node ./app.js 104
node ./app.js 105
Не забудьте chmod 0770
cron.sh, чтобы иметь возможность писать в него и, поскольку вы, кажется, запускаете этот cron как root, не позволяйте другим пользователям выполнять команды как root.
/ e: для непосредственного изменения файла crontab вы можете использовать следующий код оболочки для первого экспорта, изменения и импорта заданий:
const exec = require('child_process').exec;
const fs = require('fs');
// Read content of file
function ReadCronFile(cb) {
exec("crontab -l", function(err, stdout, stderr) {
cb(stdout);
});
}
// Write a crontab file
function WriteCronFile(data, cb) {
fs.writeFile("tmp.txt", data, function(err) {
exec("crontab tmp.txt", function(err, stdout, stderr) {
fs.unlink("tmp.txt", function(err) {
cb();
});
});
});
}
// Example usage
ReadCronFile(function(data) { console.log(data); });
WriteCronFile("...", function() { console.log("Done!"); });
Примечание: код не проверен
Или с Promise (протестировано OP)
const exec = require('child_process').exec;
const fs = require('fs');
// Read content of file
function ReadCronFile() {
return new Promise(function(resolve, reject) {
exec("crontab -l", function(err, stdout, stderr) {
if(err) return reject(err);
else return resolve(stdout);
});
});
}
// Write a crontab file
function WriteCronFile(data) {
fs.writeFile("tmp.txt", data, function(err) {
if(err) return reject(err);
exec("crontab tmp.txt", function(err, stdout, stderr) {
fs.unlink("tmp.txt", function(err) {
if(err) return reject(err);
else return resolve();
});
});
});
}
// Example usage
ReadCronFile().then(function(data) {
console.log(data);
}).catch(function(err) {
console.log(err);
});
WriteCronFile("...").then(function() {
console.log("Done!");
}).catch(function(err) {
console.log(err);
});
Для разбора файла crontab вы можете использовать https://github.com/harrisiirak/cron-parser