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