Make autobackup: false disable all backup functions and remove cmdline from checkbackup error message. (#7225)

PTR committed Aug 11, 2025 at 15:29 UTC 87c37ea3f9b3addf106f6b7e72855515e082428d
2 files changed +7 -7
db.js
+4 -4
@@ -3348,7 +3348,7 @@ module.exports.CreateDB = function (parent, func) {
3348 // Tries configured custom location with fallback to default location
3349 // Now runs after autobackup config init in meshcentral.js so config options are checked
3350 obj.checkBackupCapability = function (func) {
3351 - if ((parent.config.settings.autobackup == null) || (parent.config.settings.autobackup == false)) { return; };
3351 + if (parent.config.settings.autobackup.backupintervalhours == -1) { return; };
3352 //block backup until validated. Gets put back if all checks are ok.
3353 let backupInterval = parent.config.settings.autobackup.backupintervalhours;
3354 parent.config.settings.autobackup.backupintervalhours = -1;
@@ -3395,7 +3395,7 @@ module.exports.CreateDB = function (parent, func) {
3395 const child_process = require('child_process');
3396 child_process.exec(cmd, { cwd: backupPath }, function (error, stdout, stderr) {
3397 if ((error != null) && (error != '')) {
3398 - func(1, "Mongodump error, backup will not be performed. Command tried: " + cmd + ' --> ERROR: ' + stderr);
3398 + func(1, "Mongodump error, backup will not be performed. Check path or use mongodumppath & mongodumpargs");
3399 return;
3400 } else {parent.config.settings.autobackup.backupintervalhours = backupInterval;}
3401 });
@@ -3406,7 +3406,7 @@ module.exports.CreateDB = function (parent, func) {
3406 const child_process = require('child_process');
3407 child_process.exec(cmd, { cwd: backupPath, timeout: 1000*30 }, function(error, stdout, stdin) {
3408 if ((error != null) && (error != '')) {
3409 - func(1, "mysqldump error, backup will not be performed. Command tried: " + cmd);
3409 + func(1, "mysqldump error, backup will not be performed. Check path or use mysqldumppath");
3410 return;
3411 } else {parent.config.settings.autobackup.backupintervalhours = backupInterval;}
3412
@@ -3421,7 +3421,7 @@ module.exports.CreateDB = function (parent, func) {
3421 const child_process = require('child_process');
3422 child_process.exec(cmd, { cwd: backupPath }, function(error, stdout, stdin) {
3423 if ((error != null) && (error != '')) {
3424 - func(1, "pg_dump error, backup will not be performed. Command tried: " + cmd);
3424 + func(1, "pg_dump error, backup will not be performed. Check path or use pgdumppath.");
3425 return;
3426 } else {parent.config.settings.autobackup.backupintervalhours = backupInterval;}
3427 });
meshcentral.js
+3 -3
@@ -2120,10 +2120,10 @@ function CreateMeshCentralServer(config, args) {
2120 if (obj.args.nousers == true) { obj.updateServerState('nousers', '1'); }
2121 obj.updateServerState('state', "running");
2122
2123 - // Setup auto-backup defaults
2124 - if (obj.config.settings.autobackup == false || obj.config.settings.autobackup == 'false') { obj.config.settings.autobackup = {backupintervalhours: 0}; } //no schedule, but able to console autobackup
2123 + // Setup auto-backup defaults. Unless autobackup is set to false try to make a backup.
2124 + if (obj.config.settings.autobackup == false || obj.config.settings.autobackup == 'false') { obj.config.settings.autobackup = {backupintervalhours: -1}; } //block all autobackup functions
2125 else {
2126 - if (obj.config.settings.autobackup == null || obj.config.settings.autobackup === true) { obj.config.settings.autobackup = {backupintervalhours: 24, keeplastdaysbackup: 10}; };
2126 + if (typeof obj.config.settings.autobackup != 'object') { obj.config.settings.autobackup = {}; };
2127 if (typeof obj.config.settings.autobackup.backupintervalhours != 'number') { obj.config.settings.autobackup.backupintervalhours = 24; };
2128 if (typeof obj.config.settings.autobackup.keeplastdaysbackup != 'number') { obj.config.settings.autobackup.keeplastdaysbackup = 10; };
2129 if (obj.config.settings.autobackup.backuphour != null ) { obj.config.settings.autobackup.backupintervalhours = 24; if ((typeof obj.config.settings.autobackup.backuphour != 'number') || (obj.config.settings.autobackup.backuphour > 23 || obj.config.settings.autobackup.backuphour < 0 )) { obj.config.settings.autobackup.backuphour = 0; }}