Jeg har kodet dette BASH script til min Ubuntu server. Det tager backup af valgte mapper. – Yderlig tager det også backup af div. SQL-databaser – Det hele bliver pakket og flyttet til en remote FTP server.

Alle backups over 14 dage bliver slettet automatisk på FTP serveren.

Scripet virker super godt, derfor har jeg valgt at dele det med mine besøgende på FutureNode.dk! ENJOY  🙂

Hvad skal du bruge for at komme i gang?

  • En Remote FTP server (Her anbefaler jeg: [Hetzner storage box](https://www.hetzner.com/storage/storage-box))
  • En lokal server til at tage backup fra
  • sudo / root

OBS.. Dette script er kun testet på Ubuntu 20.04 LTS samt Ubuntu 22.04 LTS, men virker nok også med andre versioner / Linux Distros 🙂

Inden du går i gang skal du opdatere din lokale server samt installere nogle pakker!

Opdater din lokale server

Kopier til udklipsholder

Installer følgende pakker på den lokale server

Kopier til udklipsholder

Tilføj et “Fingerprint”

Hvad er et SSH-Fingerprint?

Et fingerprint er en nøgle, der bekræftes, når du forsøger at logge ind på en fjerncomputer ved hjælp af SSH. Dette skal altid gøres første gang når du logger på en ny SSH-server!

Næste kommando skal køres som ROOT!

Den kommando du skal skrive vil se sådan ud:

Kopier til udklipsholder

Hvis du ikke får en fejl – skulle det gerne være lykkedes.

Næste skridt er at oprette en MySQL backup user

Først skal du logge ind med ROOT på MySQL serveren – Det gør du med denne kommando:

Kopier til udklipsholder

Indtast nu dit MySQL ROOT password – Hvis det lykkes vil det se sådan ud:

mysql>

Opret nu en SQL bruger på den lokale server  – Her kan du bruge følgende kommandoer:

OBS: Udskift “MIN-BRUGER” samt “MIT-PASSWORD” med noget du selv vælger!

Kopier til udklipsholder

Du skal nu downloade scriptet samt tilpasse det!

Start med at gå til denne mappe:

Kopier til udklipsholder

Download scriptet:

Kopier til udklipsholder

Udpak filerne med denne kommando:

Kopier til udklipsholder

Ret nu i “script.sh”

Du skal nu rette nogle ting i scriptet. De eksempler der er vist i scriptet, skal selvfølgelig skiftes ud med dine egne informationer.

Du kan bruge nano

Kopier til udklipsholder

Ret nu følgende ting:

FTP Credentials: Linje 20 til 22 (INFO OM REMOTE FTP SERVER)

Kopier til udklipsholder

DB Credentials:  Linje 26 til 29  – Du skal bruge den nyoprettet MySQL bruger vi lavet tidligere i guiden)

Kopier til udklipsholder

Du skal nu vælge hvilke mapper / MySQL databaser du vil tage backup af

Der findes 3 txt filer i mappen, der bestemmer hvad der bliver taget backup af:

  • website_dirs.txt – Liste over “www” mapper som der vil blive taget backup af.
  • otherfiles.txt  – Liste over “andre” mapper som der vil blive taget backup af.
  • dbs.txt  – Liste over “Databaser” som der vil blive taget backup af.

Igen kan du bruge nano til at rette i dem.

Kopier til udklipsholder

Du skal nu oprette følgende biblioteker på din FTP remote server! (Du kan logge på med en FTP client)

Kopier til udklipsholder

Hvis dette ikke bliver gjort rigtig véd scriptet ikke hvor filerne skal lægges henne, og det vil lave fejl!

Det skal se sådan ud:

backup1

Crontab (root):

Du skal nu gøre så scriptet kører automatisk via “crontab”

Crontab (root):

Åben crontab som ROOT (crontab -e) og indset nedenstående kommando:

Kopier til udklipsholder

Med ovenstående linje vil scripet blive kørt dagligt ved midnat.

Hvis du vil ændre tidspunket hvor scripet bliver kørt skal du rettet: `0 0 * * *` inde i crontab..

Hvis du ikke har styr på crontab, kan du læse denne guide som vi har skrevet tidligere

Done 🙂

Hvis du har problemer kontakt mig gerne i en kommentar, og jeg vil forsøge at hjælpe dig.

Gå ikke glip af vores indlæg / guides - Tilmeld dig vores nyhedsbrev idag.

mail

👋 Inden du går! 👋

👉 Gå ikke glip af vores indlæg 👈

❤️ Tilmeld dig vores nyhedsbrev ❤️