Skriptas skirtas daryti kiekvieno domeno mysql duomenų bazių kopijas. Skriptą reikia vykdyti per cron užduotis.
/opt/mysql_local_backup/backup.sh
#!/bin/bash
# TIK PLESK VALDYMO ĮRANKIO SERVERIAMS
# === SETTINGS ===
DB_BACKUP="/opt/mysql_local_backup/dumps/" # Galima keisti į sau patogų katalogą
DB_USER="admin" # PLESKO DB pagrindinis vartotojas
DB_PASSWD=`cat /etc/psa/.psa.shadow` # Slaptažodis
SYS_USER="root" # Jeigu nurodomas docrootas ir norima, per FTP pasiekti failus
GROUP="root" # Grupė, taipat nurodoma. Pleske dažniausiai psacln
# ================
# Kuriama direktorija
/bin/mkdir -p $DB_BACKUP
# BACKUP DARBAS
while read DOMAIN DB
do
/usr/bin/mysqldump --user=$DB_USER --password=$DB_PASSWD $DB | /usr/bin/gzip > "$DB_BACKUP/$DOMAIN-$DB-$(date +%Y-%m-%d_%H%M).sql.gz";
done < <(/usr/bin/mysql --user=$DB_USER --password=$DB_PASSWD -NBe "use psa; select domains.name, data_bases.name from domains, data_bases where data_bases.dom_id=domains.id;")
# Keičiamas failų owneris:
/bin/chown -R $SYS_USER:$GROUP $DB_BACKUP
# Valomi seni backupai:
/usr/bin/find $DB_BACKUP -type f -mtime +3 -name "*.sql.gz" -exec /bin/rm -rf {} \;
Cron paleidimas kas naktį (galima ir dažniau, priklausomai nuo duomenų bazių dydžio ir duomenų svarbumo):
/etc/cron.d/mysql_local_backup.cron
50 4 * * * root /opt/mysql_local_backup/backup.sh 1>/dev/null 2>&1