From 12226390a7574db5e2692db4942f9573a60e0755 Mon Sep 17 00:00:00 2001 From: Anthony Date: Wed, 13 Nov 2024 02:21:11 +0800 Subject: [PATCH] Fix JPS errors --- manifest.jps | 35 ++++++++++++----------- scripts/imports/manage_backup_schedule.sh | 12 ++++---- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/manifest.jps b/manifest.jps index 6db2e47..3abcc27 100644 --- a/manifest.jps +++ b/manifest.jps @@ -1,5 +1,5 @@ type: update -jpsVersion: 1.1 +jpsVersion: 1.2 name: MightyBox WordPress Backup/Restore Addon id: mb-backup-manager description: Custom Backup and Restore Addon for WordPress using Restic. Supports backing up databases, core files, media files, and full backups with scheduling and retention policies. @@ -181,22 +181,23 @@ onAfterClone: actions: configureAutoBackup: - - cmd[cp]: - user: root - commands: | - if [ ! -f /etc/restic-password ]; then - echo "Error: Restic password file not found" - exit 1 - fi - RESTIC_PWD=$(cat /etc/restic-password) - if [ "${settings.frequency}" = "daily" ]; then - bash ${globals.scriptPath}/manage_backup_schedule.sh add "0 ${settings.hour} * * *" "$RESTIC_PWD" - else - bash ${globals.scriptPath}/manage_backup_schedule.sh add "0 ${settings.hour} * * ${settings.dayOfWeek}" "$RESTIC_PWD" - fi - - return: - type: info - message: "${response.out}" + - cmd[cp]: + user: root + commands: | + if [ ! -f /etc/restic-password ]; then + echo "Error: Restic password file not found" + exit 1 + fi + RESTIC_PWD=$(cat /etc/restic-password) + if [ "${settings.frequency}" = "daily" ]; then + cron_schedule="0 ${settings.hour} * * *" + else + cron_schedule="0 ${settings.hour} * * ${settings.dayOfWeek}" + fi + bash ${globals.scriptPath}/manage_backup_schedule.sh add "$cron_schedule" "$RESTIC_PWD" + - return: + type: info + message: "${response.out}" removeAutoBackup: - cmd[cp]: diff --git a/scripts/imports/manage_backup_schedule.sh b/scripts/imports/manage_backup_schedule.sh index 26c9b4e..bf687d4 100644 --- a/scripts/imports/manage_backup_schedule.sh +++ b/scripts/imports/manage_backup_schedule.sh @@ -101,21 +101,21 @@ add_update_cron_job() { local schedule="$2" local restic_password="$3" local temp_crontab="/tmp/temp_crontab.$$" - + # Validate inputs if ! validate_schedule "$schedule"; then return 1 fi - + # Prepare cron command with environment variables and error handling local CMD="RESTIC_PASSWORD=\"$restic_password\" \ - LOG_FILE=\"${BACKUP_LOG_PREFIX}\$(date +\\%Y-\\%m-\\%d_\\%H-\\%M-\\%S).log\" \ - $BACKUP_SCRIPT > \"\$LOG_FILE\" 2>&1 || echo \"\$(date) Backup failed\" >> \"$ACTION_LOG_FILE\"" - +LOG_FILE=\"${BACKUP_LOG_PREFIX}\$(date +\\%Y-\\%m-\\%d_\\%H-\\%M-\\%S).log\" \ +$BACKUP_SCRIPT > \"\$LOG_FILE\" 2>&1 || echo \"\$(date) Backup failed\" >> \"$ACTION_LOG_FILE\"" + # Safely update crontab crontab -l 2>/dev/null | grep -v "$BACKUP_SCRIPT" > "$temp_crontab" || true echo "$schedule $CMD" >> "$temp_crontab" - + if crontab "$temp_crontab"; then log_action "Successfully ${action}d backup schedule: $schedule" rm -f "$temp_crontab"