Node 执行 shell 命令

在项目中用到了定时执行shell命令的功能:

// runShell.js

const process = require('child_process');
require('colors');

module.exports = (sh, log = '', callback) => {
  log !== '' ? console.log(`[Shell Log]`.green, log) : null;
  console.log(`[ SH ]`.cyan,sh.cyan);
  process.exec(sh, (err,sto) => {
    if (err) {
      console.log(`[Shell Error]`.red, err);
      return
    }
    log !== '' ? console.log(`[Shell Log]`.green, log, 'success') : null;
    console.log(sto);
    callback()
  })
}
// shell.js 

const async = require('async');
const moment = require('moment');
const run = require('./run');
require('colors');

async.waterfall([
    (next) => {
      console.log('######## Export Users #########');
      console.log('Start Time:', moment().format('YYYY-MM-DD HH:mm:ss'))
      next();
    },
    (next) => {
      run('mongoimport -h 127.0.0.1:27017 -d xxx -c users --file /var/www/xxx.json --upsert', '导出文件', next);
    },
  ], (err) => {
    console.log('End Time:', moment().format('YYYY-MM-DD HH:mm:ss'))
    if (err) {
      console.log(`[ExportUsers Shell Error]`.red, err);
    }
  })

你可能感兴趣的:(Node 执行 shell 命令)