Website backup script via FTP (BASH script)

file backup from internet
Het is raadzaam en handig om een (aantal) keer per week je website bestanden veilig te stellen door er een backup van te maken, zo kun je altijd je website herstellen mochter er bestanden beschadigd of zoek zijn geraakt, ik heb een script gemaakt, gebaseerd op het MySQL backup script.

Omdat er verder geen FTP client is geinstalleerd op een synology NAS (en apt-get / ipkg werken niet), maken we gebruik van WGET
Het script hieronder download via FTP de bestanden van een website, plaatst deze in een tijdelijke folder en pakt ze in een archief met GZIP (locatie is in te stellen) na de download, de tijdelijke bestanden worden daarna verwijderdt.

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 en volume1/temp

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

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

ftp backup website NAS 02

Het script

update Juli 2019, hieronder een nieuwe versie

  • Minder instellingen
  • Controleren van aantal backups (oude bestanden) nu vereenvoudigd en werkt nu met dagen (ipv specifiek aantal)
  • Download alleen gewijzigde bestanden (laat de FTP download staan)
  • 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.

Let op!: Heb je een router met DDOS beveiliging, en staat deze aan?, stel deze iets ruimer in anders heb je kans dat je NAS wordt geblokkeerd door je router ivm met het aantal verbindingen per seconde.