MySQL database backup script (BASH script)


Het is raadzaam en handig om een (aantal) keer per week je databases veilig te stellen door er een backup van te maken, zo kun je altijd je database herstellen mocht deze beschadigd zijn geraakt, ik heb een goed script gevonden en deze aangepast/verbeterd.

In het volgende voorbeeld behandelen we het script via een CRON-job op een Synology NAS.

Je hebt nodig: WinSCP en evt. een USB stick in de NAS

1) Gebruik WinSCP om in te loggen en maak de folder: volume1/cron

2) Creeer een nieuw bestand en noem deze bijvoorbeeld: mysqlbackup.sh, kopieer en plak daarin het script, wijzig de instellingen voor je eigen situatie en en sla het bestand op.
MySQL backup script WinSCP 01

3) Op de NAS ga naar: Control Panel > Task Sheduler > Create > User-defined script > voor in: “sh /volume1/cron/mysqlbackup.sh” en stel de tijden en dagen in.
MySQL backup script WinSCP 02

Script

update Juli 2019, hieronder een nieuwe versie

  • Controleren van aantal backups (oude bestanden) nu vereenvoudigd en werkt nu met dagen (ipv specifiek aantal)
  • Download nu naar SQL bestand en archiveert nu met ZIP

Oude versie

Je kan de BASH ‘instellingen’ opnieuw toewijzen, je kan dan meerdere backups maken in 1 script, kopieer dan de instellingen en het script gedeelte binnen de ### opnieuw en plaats deze VOOR de ‘exit 0’ commando.


Update 2019

Met DSM 6.1.4 en MARIADB hoef je in principe geen pad meer te gebruiken:

MYSQLDUMP=mysqldump

Het is wel noodzakelijk om MariaDB5 of MariaDB10 te installeren: