Aşağıdaki script, Plesk sunucuda MariaDB üzerindeki tüm veritabanlarını döngüyle yedekleyerek sıkıştırılmış .gz
formatında saklar:
#!/bin/bash
# Yedekleme dizini
BACKUP_DIR="/backup"
# Plesk MySQL yönetici kullanıcı bilgileri
MYSQL_USER="admin"
MYSQL_PASSWORD=$(cat /etc/psa/.psa.shadow)
# Eğer yedekleme dizini yoksa oluştur
mkdir -p "$BACKUP_DIR"
# Tüm veritabanlarını listele
DATABASES=$(/usr/bin/mariadb -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "^(Database|information_schema|performance_schema|mysql|sys)$")
# Her veritabanı için yedek al
for DB in $DATABASES; do
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/${DB}_$TIMESTAMP.sql.gz"
echo "Yedek alınıyor: $DB -> $BACKUP_FILE"
/usr/bin/mariadb-dump -u$MYSQL_USER -p$MYSQL_PASSWORD --databases "$DB" | gzip > "$BACKUP_FILE"
if [ $? -eq 0 ]; then
echo "Başarıyla yedeklendi: $DB"
else
echo "Hata oluştu: $DB"
fi
done
echo "Tüm veritabanları yedeklendi."
Bu script, her veritabanını ayrı bir .sql.gz
dosyası olarak /backup
klasörüne kaydeder.
- Script’i bir dosyaya (
veritabaniyedekle.sh
) kaydedin ve çalıştırma izni verin:
chmod +x veritabaniyedekle.sh
Çalıştırın:
./veritabaniyedekle.sh