'use strict'; | |
var mysqlBackup = require('./mysql-backup'); | |
var schedule = require('node-schedule'); | |
schedule.scheduleJob({ hour: 22, minute: 0 }, mysqlBackup); |
'use strict'; | |
var spawn = require('child_process').spawn; | |
var s3Upload = require('s3-stream-upload'); | |
var config = require('../config'); | |
var Promise = require('bluebird'); | |
var moment = require('moment'); | |
var mysqlBackup = function() { | |
var upload = s3Upload({ | |
accessKeyId: config.aws.accessKey, | |
secretAccessKey: config.aws.secretKey, | |
Bucket: config.aws.buckets.backup.name, | |
region: config.aws.buckets.backup.region | |
}); | |
var s3 = upload({ Key: 'mysql-backup-' + moment().format('YYYY-MM-DD-HH-mm-ss') + '.sql' }); | |
var mysqldump = spawn('mysqldump', [ | |
'-u', config.db.connection.user, | |
'-p' + config.db.connection.password, | |
config.db.connection.database | |
]); | |
return new Promise(function(resolve, reject) { | |
mysqldump | |
.stdout | |
.pipe(s3) | |
.on('finish', function() { | |
resolve(); | |
}) | |
.on('error', function(err) { | |
reject(err); | |
}); | |
}); | |
}; | |
module.exports = mysqlBackup; |
Không có nhận xét nào:
Đăng nhận xét