Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # -----------------------------------------------
- # WordPress DB + wp-config.php backup per domain
- # by ChatGPT
- # -----------------------------------------------
- BACKUP_ROOT="$HOME/backup"
- DATE=$(date +%Y%m%d_%H%M%S)
- # Pastikan folder backup root ada
- mkdir -p "$BACKUP_ROOT"
- # Loop semua domain yang punya wp-config.php
- for WPCONFIG in /var/www/*/wp-config.php; do
- [ -f "$WPCONFIG" ] || continue
- DOMAIN=$(basename "$(dirname "$WPCONFIG")")
- DEST="$BACKUP_ROOT/$DOMAIN"
- mkdir -p "$DEST"
- echo "🔹 Backup domain: $DOMAIN"
- # Ambil credential dari wp-config.php
- DB_NAME=$(grep "DB_NAME" "$WPCONFIG" | cut -d "'" -f 4)
- DB_USER=$(grep "DB_USER" "$WPCONFIG" | cut -d "'" -f 4)
- DB_PASS=$(grep "DB_PASSWORD" "$WPCONFIG" | cut -d "'" -f 4)
- DB_HOST=$(grep "DB_HOST" "$WPCONFIG" | cut -d "'" -f 4)
- # Nama file backup
- SQL_FILE="$DEST/db_${DB_NAME}_${DATE}.sql"
- CONFIG_FILE="$DEST/wp-config_${DATE}.php"
- # Backup database
- echo " ➤ Dumping database: $DB_NAME"
- mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$SQL_FILE" 2>/dev/null
- if [ $? -eq 0 ]; then
- echo " ✅ DB backup done: $SQL_FILE"
- else
- echo " ❌ ERROR: Gagal dump database $DB_NAME"
- rm -f "$SQL_FILE"
- fi
- # Backup wp-config.php
- cp "$WPCONFIG" "$CONFIG_FILE"
- echo " ✅ Config backup done: $CONFIG_FILE"
- echo "-----------------------------------------------"
- done
- echo "🎉 Semua backup selesai! Lokasi: $BACKUP_ROOT"
Advertisement