"; var wpa_add_test = "no";
AI Hardware Summit 2022
This tutorial describes the process for Auto Backup MongoDB Database with NodeJS on server.
Prerequisites:
Create a js file in your project folder called mongodb_backup.js and add below code.
Replace variables < databaseUsername >, < databasePassword >, < databaseName > , < serverPath > with the values of your database.
var fs = require('fs'); var _ = require('lodash'); var exec = require('child_process').exec; var dbOptions = { user: '<databaseUsername>', pass: '<databasePassword>', host: 'localhost', port: 27017, database: '<databaseName>', autoBackup: true, removeOldBackup: true, keepLastDaysBackup: 2, autoBackupPath: '<serverPath>' // i.e. /var/database-backup/ }; /* return date object */ exports.stringToDate = function (dateString) { return new Date(dateString); } /* return if variable is empty or not. */ export.empty = function(mixedVar) { var undef, key, i, len; var emptyValues = [undef, null, false, 0, '', '0']; for (i = 0, len = emptyValues.length; i < len; i++) { if (mixedVar === emptyValues[i]) { return true; } } if (typeof mixedVar === 'object') { for (key in mixedVar) { return false; } return true; } return false; }; // Auto backup script dbAutoBackUp: function () { // check for auto backup is enabled or disabled if (dbOptions.autoBackup == true) { var date = new Date(); var beforeDate, oldBackupDir, oldBackupPath; currentDate = this.stringToDate(date); // Current date var newBackupDir = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate(); var newBackupPath = dbOptions.autoBackupPath + 'mongodump-' + newBackupDir; // New backup path for current backup process // check for remove old backup after keeping # of days given in configuration if (dbOptions.removeOldBackup == true) { beforeDate = _.clone(currentDate); beforeDate.setDate(beforeDate.getDate() - dbOptions.keepLastDaysBackup); // Substract number of days to keep backup and remove old backup oldBackupDir = beforeDate.getFullYear() + '-' + (beforeDate.getMonth() + 1) + '-' + beforeDate.getDate(); oldBackupPath = dbOptions.autoBackupPath + 'mongodump-' + oldBackupDir; // old backup(after keeping # of days) } var cmd = 'mongodump --host ' + dbOptions.host + ' --port ' + dbOptions.port + ' --db ' + dbOptions.database + ' --username ' + dbOptions.user + ' --password ' + dbOptions.pass + ' --out ' + newBackupPath; // Command for mongodb dump process exec(cmd, function (error, stdout, stderr) { if (this.empty(error)) { // check for remove old backup after keeping # of days given in configuration if (dbOptions.removeOldBackup == true) { if (fs.existsSync(oldBackupPath)) { exec("rm -rf " + oldBackupPath, function (err) { }); } } } }); } }
To create cron install cron module from NPM package manager https://www.npmjs.com/package/cron using below command
npm install cron –save
Add below code into your server.js / main.js / index.js
global.CronJob = require(‘Your path to cron.js file’);
Now create cron.js file in your project and paste below code in it.
var CronJob = require('cron').CronJob; var Cron = require('./mongodb_backup.js'); new CronJob('0 0 0 * * *', function() { Cron.dbAutoBackUp(); }, null, true, 'America/New_York');
Any questions or problems, please, ask us and We’ll happy to help you.