Da der Datenbankserver nicht direkt erreichbar ist, wird der Download des täglichen Backups in 2 Schritten vollzogen. Im ersten Schritt lädt der LoadBalancer die Daten vom DB-Server in ein lokales Verzeichnis auf dem NFS. Dabei werden die Datenbanken gepackt um platz zu sparen. Im zweiten Schritt lädt dann Allerleo die Daten herunter, sichert sie und löscht die Kopie auf dem LoadBalancer. Dies geschieht jeweils zwischen 4 Uhr und 5 Uhr Nachts mithilfe folgender Scripte:
WICHTIG: Das Script lädt nur die angegeben Datenbanken (unter “db_names”) herunter. Sollte also eine weiter Datenbank gesichert werden sollen, dann muss der DB-Name (ohne die Endung “.sql”) hier eingetragen werden.
1. Schritt (Loadbalancer: /sftp/db_backup/download_and_tar_DBs.sh)
#!/bin/bash
CURRENTDATE=`date +"%Y-%m-%d_%H-%M-%S"`
db_names=("chargingstore" "magento1_eisch" "magento1_kahla" "magento1_seltmann" "magento2" "openmage_multishop" "shopware-neo" "wordpress_constancy")
for i in "${db_names[@]}"
do
:
ssh -Te none root@db "cd /0db_backups/;tar -cz $i.sql" > "/sftp/db_backup/inet_db_backup_${CURRENTDATE}_${i}.tar.gz"
done
db_names=("boxmulti" "cy-wawi" "magento2power" "matomo" "nextcloud")
for i in "${db_names[@]}"
do
:
ssh -Te none root@db2 "cd /0db_backups/;tar -cz $i.sql" > "/sftp/db_backup/inet_db_backup_${CURRENTDATE}_${i}.tar.gz"
done
2. Schritt (Allerlei: /scripts/downloadDBBackups.sh)
#!/bin/bash
mail_receiver="notify@constancy.de"
mail_cc="christian.ruhmer@constancy.de"
mail_sender="robot@constancy.de"
#CURRENTDATE=`date +"%Y-%m-%d_%H-%M-%S"`
#ssh -Te none root@51.89.104.176 -p 64101 "cd /root/;tar -cz test*" > "inet_db_backup_${CURRENTDATE}.tar.gz"
scp -P 64101 root@51.89.104.176:/sftp/db_backup/inet_db_backup_* /mnt/storagebox/Backup_Marvin/Backup/Datenbanken/iNet/
if [ $? -eq 0 ];
then
ssh -Te none root@51.89.104.176 -p 64101 "rm /sftp/db_backup/inet_db_backup_*"
else
echo "Fehler beim Download der aktullen Datenbank Backups." | mail -r $mail_sender -s "Download DB-Backups fehlgeschlagen" -c $mail_cc $mail_receiver
