Last active
August 13, 2024 21:05
-
-
Save mjones129/09d8bd84d15d82927dce2d825b9692a8 to your computer and use it in GitHub Desktop.
WordPress Backups
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
## exit script on error | |
set -e | |
# Variables | |
WP_PATH="/var/www/html" | |
BACKUP_PATH="/opt/backups" | |
DATE=$(date +"%Y-%m-%d") | |
BACKUP_DIR="${BACKUP_PATH}/${DATE}-backup" | |
LOG_FILE="/var/log/wp-backup.log" | |
REMOTE_DIR="b2:mjtwp-backups/mattjonestech/" | |
# logging function | |
log() { | |
echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" | tee -a "$LOG_FILE" | |
} | |
log "Backup started." | |
# ensure backup directory exists before running | |
mkdir -p "$BACKUP_DIR" | |
log "Created backup directory: $BACKUP_DIR" | |
cd "$WP_PATH" | |
# database dump | |
wp db export "${BACKUP_DIR}/database.sql" | |
log "Database export complete." | |
# compress wp-content | |
tar -cvf "${BACKUP_DIR}/wp-content.tar" -C "$WP_PATH" wp-content | |
log "Compression of wp-content complete." | |
# compress full backup | |
tar -cvf "${BACKUP_PATH}/${DATE}-backup.tar" -C "$BACKUP_PATH" "${DATE}-backup" | |
log "Full backup compression complete." | |
# copy to Backblaze | |
rclone copy "${BACKUP_PATH}/${DATE}-backup.tar" b2:backup-bucket/site-name/ --verbose | |
log "Backup uploaded to Backblaze." | |
# clean up | |
rm -rf "${BACKUP_DIR}" | |
rm -f "${BACKUP_PATH}/${DATE}-backup.tar" | |
log "Temporary backup files removed." | |
log "Backup complete." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment