#!/bin/bash # Enable error handling set -e trap 'echo "[$(date +%Y-%m-%d %H:%M:%S)] Backup failed" >> "$LOG_DIR/backup_error.log"' ERR # Configuration LOG_DIR="/home/jelastic/mb-backups/logs" CORE_BACKUP_SCRIPT="/home/jelastic/mb-backups/backup_core_files.sh" DATABASE_BACKUP_SCRIPT="/home/jelastic/mb-backups/backup_database.sh" MEDIA_BACKUP_SCRIPT="/home/jelastic/mb-backups/backup_media.sh" MANUAL_BACKUP_TAG="manual-backup-$(date +'%Y-%m-%d_%H-%M-%S')" # Ensure log directory exists mkdir -p "$LOG_DIR" # Logging function log_message() { local message="$1" echo "[$(date +'%Y-%m-%d %H:%M:%S')] $message" | tee -a "${LOG_DIR}/backup_all.log" } # Main execution main() { log_message "Starting full backup process with tag: $MANUAL_BACKUP_TAG" # Run individual backup scripts if bash "$CORE_BACKUP_SCRIPT" "$(cat /etc/restic-password)" "$MANUAL_BACKUP_TAG"; then log_message "Core files backup completed successfully." else log_message "ERROR: Core files backup failed." exit 1 fi if bash "$DATABASE_BACKUP_SCRIPT" "$(cat /etc/restic-password)" "$MANUAL_BACKUP_TAG"; then log_message "Database backup completed successfully." else log_message "ERROR: Database backup failed." exit 1 fi if bash "$MEDIA_BACKUP_SCRIPT" "$(cat /etc/restic-password)" "$MANUAL_BACKUP_TAG"; then log_message "Media files backup completed successfully." else log_message "ERROR: Media files backup failed." exit 1 fi log_message "Full backup process completed successfully." } # Argument handling if [ "$1" == "backup_now" ]; then main else echo "Usage: $0 backup_now" exit 1 fi