PLESK domains mysql backup

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