Fix Enable Auto Backup

main
Anthony 2024-11-14 00:52:16 +08:00
parent 662621143c
commit 17414609db
1 changed files with 32 additions and 222 deletions

View File

@ -14,8 +14,8 @@ targetNodes:
globals: globals:
envName: "${env.name}" envName: "${env.name}"
scriptPath: "/home/litespeed/mb-backups" scriptPath: "/home/jelastic/mb-backups"
logPath: "/home/litespeed/mb-backups/logs" logPath: "/home/jelastic/mb-backups/logs"
onInstall: onInstall:
- checkAddons - checkAddons
@ -35,14 +35,14 @@ settings:
- name: snapshotId - name: snapshotId
caption: Snapshot ID caption: Snapshot ID
type: string type: string
buttons: buttons:
- caption: Backup Now - caption: Backup Now
action: backupnow action: backupnow
loadingText: Backing up... loadingText: Backing up...
confirmText: Do you want to initiate the backup process? confirmText: Do you want to initiate the backup process?
successText: The backup process has been finished successfully. successText: The backup process has been finished successfully.
menu: menu:
- caption: Configure Auto Backup - caption: Configure Auto Backup
action: configureAutoBackup action: configureAutoBackup
@ -63,70 +63,6 @@ menu:
confirmText: View current backup schedule? confirmText: View current backup schedule?
successText: Current schedule retrieved successfully successText: Current schedule retrieved successfully
- caption: Check Backup Repository
confirmText: Do you want to check and repair the backup repository?
loadingText: Checking and repairing backup repository...
action: checkBackupRepo
successText: Backup repository check completed successfully.
title: Check Backup Repository
submitButtonText: Run Check
- caption: Core File Backup
confirmText: Backup Core Files?
loadingText: Backing up Core Files...
action: backupcore
successText: Core Files Backup Completed Successfully
settings: backupSettings
title: Backup Core Files
submitButtonText: Backup Now
- caption: Media Backup
confirmText: Backup Media Files?
loadingText: Backing up Media Files...
action: backupmedia
successText: Media Files Backup Completed Successfully
settings: backupSettings
title: Backup Media Files
submitButtonText: Backup Now
- caption: Database Backup
confirmText: Backup Database?
loadingText: Backing up Database...
action: backupdb
successText: Database Backup Completed Successfully
settings: backupSettings
title: Backup Database
submitButtonText: Backup Now
- caption: Restore
confirmText: Restore from Snapshot?
loadingText: Restoring...
action: restore
successText: Restore Completed Successfully
settings: restoreSettings
title: Restore from Snapshot
submitButtonText: Restore Now
- caption: View Full Backups
action: viewFullBackups
confirmText: Are you sure you want to view full backups?
successText: Full backups listed successfully.
- caption: View Core Backups
action: viewCoreBackups
confirmText: Are you sure you want to view core backups?
successText: Core backups listed successfully.
- caption: View Media Backups
action: viewMediaBackups
confirmText: Are you sure you want to view media backups?
successText: Media backups listed successfully.
- caption: View Database Backups
action: viewDatabaseBackups
confirmText: Are you sure you want to view database backups?
successText: Database backups listed successfully.
onUninstall: onUninstall:
- removeScript - removeScript
@ -135,8 +71,8 @@ onBeforeDelete:
onAfterRedeployContainer[cp]: onAfterRedeployContainer[cp]:
- installRestic - installRestic
onAfterClone: onAfterClone:
- script: return {result:0, jps:MANIFEST}; - script: return {result:0, jps:MANIFEST};
- install: ${response.jps} - install: ${response.jps}
nodeGroup: ${targetNodes.nodeGroup:cp} nodeGroup: ${targetNodes.nodeGroup:cp}
@ -149,15 +85,7 @@ actions:
- cmd[cp]: - cmd[cp]:
user: root user: root
commands: | commands: |
if [ ! -x "/home/litespeed/mb-backups/manage_backup_schedule.sh" ]; then bash "/home/jelastic/mb-backups/manage_backup_schedule.sh" add "0 0 * * *" "$(cat /etc/restic-password)"
echo "Error: manage_backup_schedule.sh not found or not executable"
exit 1
fi
bash "/home/litespeed/mb-backups/manage_backup_schedule.sh"
if [ $? -ne 0 ]; then
echo "Error executing manage_backup_schedule.sh"
exit 1
fi
- return: - return:
type: info type: info
message: "Daily backup schedule configured successfully" message: "Daily backup schedule configured successfully"
@ -165,162 +93,44 @@ actions:
removeAutoBackup: removeAutoBackup:
- cmd[cp]: - cmd[cp]:
user: root user: root
commands: bash /home/litespeed/mb-backups/manage_backup_schedule.sh remove commands: bash /home/jelastic/mb-backups/manage_backup_schedule.sh remove
- return: - return:
type: info type: info
message: "${response.out}" message: "Backup schedule removed successfully"
checkBackupRepo:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/backup-logic.sh check_backup_repo "${globals.envName}"
- return:
type: info
message: "${response.out}"
backupnow: backupnow:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/backup_all.sh "${globals.envName}"
- return:
type: info
message: "${response.out}"
backupcore:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/backup_core_files.sh "${globals.envName}" "${settings.blabel}"
- return:
type: info
message: "${response.out}"
backupmedia:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/backup_media.sh "${globals.envName}" "${settings.blabel}"
- return:
type: info
message: "${response.out}"
backupdb:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/backup_database.sh "${globals.envName}" "${settings.blabel}"
- return:
type: info
message: "${response.out}"
restore:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/restore_backup_direct.sh "${settings.snapshotId}" "${globals.envName}"
- return:
type: info
message: "${response.out}"
viewFullBackups:
- cmd[cp]: - cmd[cp]:
user: root user: root
commands: bash /home/jelastic/mb-backups/view_snapshots.sh main_backup commands: bash /home/jelastic/mb-backups/backup_all.sh "${globals.envName}"
- return: - return:
type: info type: info
message: "${response.out}" message: "Backup initiated successfully."
viewCoreBackups:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/view_snapshots.sh core_files
- return:
type: info
message: "${response.out}"
viewMediaBackups:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/view_snapshots.sh media_themes
- return:
type: info
message: "${response.out}"
viewDatabaseBackups:
- cmd[cp]:
user: root
commands: bash /home/jelastic/mb-backups/view_snapshots.sh wordpress_db
- return:
type: info
message: "${response.out}"
viewBackupSchedule: viewBackupSchedule:
- cmd[cp]: - cmd[cp]:
user: root user: root
commands: bash /home/litespeed/mb-backups/check_sched.sh commands: bash /home/jelastic/mb-backups/check_sched.sh
- return: - return:
type: info type: info
message: "${response.out}" message: "${response.out}"
checkAddons:
- script: |-
var onAfterReturn = { setGlobals: {} },
glbs = onAfterReturn.setGlobals,
resp = api.marketplace.app.GetAddonList({
search: {},
envName: "${env.name}",
session: session
});
if (resp.result != 0) return resp;
glbs["alreadyInstalled"] = false;
for (let i = 0, n = resp.apps.length; i < n; i++) {
if (resp.apps[i].isInstalled) {
if (resp.apps[i].app_id == 'db-backup') {
glbs["alreadyInstalled"] = true;
break;
}
}
}
return { result: 0, onAfterReturn: onAfterReturn };
- if ('${globals.alreadyInstalled}' == 'true' ):
- stopEvent:
type: warning
message: Database backup add-on is already installed on ${env.name}. Backup addon installation is not possible.
installRestic:
cmd [cp]: |-
if which dnf >/dev/null 2>&1; then
dnf install -y epel-release
dnf install -y restic
else
yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/copart/restic/repo/epel-7/copart-restic-epel-7.repo
yum-config-manager --enable copr:copr.fedorainfracloud.org:copart:restic
yum -y install restic
yum-config-manager --disable copr:copr.fedorainfracloud.org:copart:restic
echo "/var/log/backup_addon.log {
weekly
rotate 52
missingok
notifempty
compress
copytruncate
}" > /etc/logrotate.d/backup-addon
fi
user: root
importScripts: importScripts:
- cmd[cp]: - cmd[cp]:
user: root user: root
commands: commands:
- mkdir -p /home/jelastic/mb-backups - mkdir -p /home/jelastic/mb-backups
- mkdir -p /home/litespeed/mb-backups/logs - mkdir -p /home/jelastic/mb-backups/logs
- mkdir -p /home/litespeed/mb-backups/logs/auto - mkdir -p /home/jelastic/mb-backups/logs/auto
- mkdir -p /home/litespeed/mb-backups/logs/manual - mkdir -p /home/jelastic/mb-backups/logs/manual
- mkdir -p /home/litespeed/mb-backups/logs/restore - mkdir -p /home/jelastic/mb-backups/logs/restore
- cd /home/jelastic/mb-backups - cd /home/jelastic/mb-backups
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_all.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_all.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_core_files.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_core_files.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_database.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_database.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_media.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/backup_media.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/check_sched.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/check_sched.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/manage_backup_schedule.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/manage_backup_schedule.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/restore_backup_direct.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/restore_backup_direct.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/view_snapshots.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/imports/view_snapshots.sh
- curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/backup-logic.sh - curl -O https://deploy-proxy.mightybox.io/addons/mb-backup-manager/raw/branch/main/scripts/backup-logic.sh
- chmod +x /home/litespeed/mb-backups/*.sh - chmod +x /home/jelastic/mb-backups/*.sh