2024-09-18 16:53:20 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2024-11-12 18:15:11 +00:00
|
|
|
# Enable error handling
|
|
|
|
set -e
|
2025-01-07 15:01:14 +00:00
|
|
|
trap 'echo "[$(date +%Y-%m-%d %H:%M:%S)] Backup failed" >> "$LOG_DIR/backup_error.log"' ERR
|
2024-09-18 16:53:20 +00:00
|
|
|
|
|
|
|
# Configuration
|
2025-01-07 15:01:14 +00:00
|
|
|
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')"
|
2024-11-12 18:15:11 +00:00
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
# Ensure log directory exists
|
|
|
|
mkdir -p "$LOG_DIR"
|
2024-11-12 18:15:11 +00:00
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
# Logging function
|
2025-01-06 15:33:56 +00:00
|
|
|
log_message() {
|
2025-01-07 15:01:14 +00:00
|
|
|
local message="$1"
|
|
|
|
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $message" | tee -a "${LOG_DIR}/backup_all.log"
|
2024-11-12 18:15:11 +00:00
|
|
|
}
|
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
# Main execution
|
|
|
|
main() {
|
|
|
|
log_message "Starting full backup process with tag: $MANUAL_BACKUP_TAG"
|
2024-11-12 18:15:11 +00:00
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
# 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
|
2024-11-12 18:15:11 +00:00
|
|
|
fi
|
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
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."
|
2025-01-06 15:13:20 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
2024-09-18 16:53:20 +00:00
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
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
|
2024-09-18 16:53:20 +00:00
|
|
|
fi
|
2025-01-06 15:33:56 +00:00
|
|
|
|
2025-01-07 15:01:14 +00:00
|
|
|
log_message "Full backup process completed successfully."
|
2024-11-12 18:15:11 +00:00
|
|
|
}
|
2024-09-18 16:53:20 +00:00
|
|
|
|
2025-01-06 15:13:20 +00:00
|
|
|
# Argument handling
|
|
|
|
if [ "$1" == "backup_now" ]; then
|
|
|
|
main
|
|
|
|
else
|
|
|
|
echo "Usage: $0 backup_now"
|
|
|
|
exit 1
|
|
|
|
fi
|