Page 1 of 1

Back-up RPI to Synology

Posted: Mon 03 Oct 2022, 13:43
by Theet
De Raspberry Pi maakt gebruik van een SD Card, welke uiteindelijk problemen gaat geven en/of defect raakt. Dit kan ontstaan door bijvoorbeeld teveel lees- of schrijfacties, reboots, etc…

Om veel leed te voorkomen, is het verstandig om (dagelijks) een automatische back-up van de Raspberry Pi te maken naar een externe locatie. In mijn geval heb ik gekozen voor een Synology NAS. Een voorwaarde voor mij is wel, dat de Raspberry Pi gewoon blijft functioneren.

Mocht het uiteindelijk een keer fout gaan en de Raspberry Pi niet meer opstart, dan is de back-up meteen op een nieuwe SD Card terug te zetten.

Back-up folder aanmaken
Als eerste stap dienen we een back-up folder aan te maken op de Raspberry Pi.

Code: Select all

sudo mkdir /mnt/backup
De volgende stap is een back-up folder aan te maken op de Synology NAS met een gebruiker die voldoende rechten heeft. Ik heb een folder “rpi” aangemaakt.

Credentials bestand aanmaken
Om de gebruikersnaam en wachtwoord later in te kunnen vullen, maken we een zogenaamd credentials bestand aan

Code: Select all

cd /home/pi
sudo nano .nascreds
Zet hierin onderstaande 2 regels (aanpassen met eigen gegevens)

Code: Select all

username=[username]
password=[password]
Sluit daarna af met CTRL-X en bewaar het bestand

Mounten back-up folder na een herstart
Om ervoor te zorgen dat de backup folder weer gekoppeld wordt aan de folder op mijn Synology NAS, dienen we het bestand fstab aan te passen.

Code: Select all

sudo nano /etc/fstab
Hiervoor dienen we een aantal zaken te weten:

IP Adres van de Synology NAS [IPADRESNAS]
Gekozen folder op de NAS [FOLDER]
Gebruikersnaam [USER] en wachtwoord [PWD] met rechten tot de folder op de NAS
Voeg onderstaande regel toe aan het fstab bestand:

Code: Select all

//[IPADRESNAS]/[FOLDER] /mnt/backup cifs credentials=/home/pi/.nascreds,nofail,vers=1.0,x-systemd.automount   0  0
In mijn geval wordt het dan:

Code: Select all

//192.168.1.10/rpi /mnt/backup cifs credentials=/home/pi/.nascreds,nofail,vers=1.0,x-systemd.automount   0  0
Sla fstab op en sluit de nano editor af. Test nu de mount met het commando:

Code: Select all

sudo mount -a
Het kan zijn dat er een foutmelding komt (/etc/fstab: parse error: ignore entry at line). Je hebt dan waarschijnlijk ergens een typefout gemaakt. Met onderstaand commando kan je snel controleren of er bijvoorbeeld vreemde karakters, teveel spaties, etc.. gebruikt zijn:

Code: Select all

cat -v /etc/fstab
Pas de eventuele fouten aan.

Back-up script
Nadat alles goed werkt komen we aan bij het onderdeel van het back-up script. Het script kan hier gedownload worden. Nadat je het script gedownload hebt, pak je het lokaal uit op je systeem. In het script staan 2 variabelen die je eventueel kunt aanpassen:

Code: Select all

# Declare vars and set standard values
backup_path=/mnt/backup
retention_days=3
Kopieer het .sh-bestand in de /mnt/backup folder op je Raspberry Pi en zorg ervoor dat het script uitgevoerd kan worden met onderstaand commando:

Code: Select all

sudo chmod +x /mnt/backup/system_backup.sh
Dagelijks uitvoeren met Crontab
Om ervoor te zorgen dat dit script automatisch dagelijks wordt uitgevoerd, voegen we het script toe aan crontab.

LET OP: het script dient als ROOT te worden uitgevoerd en dienen we de ROOT crontab aan te passen!

Code: Select all

sudo crontab -e
Voeg onderstaande regel toe aan de crontab. Pas eventueel het pad aan als je het .sh-bestand niet in /mnt/backup hebt geplaats.

Code: Select all

0 3 * * * /mnt/backup/system_backup.sh
Met bovenstaand command wordt er elke nacht om 3 uur een automatische back-up van de Raspberry Pi (SD Card) gemaakt naar de NAS.

Opmerking(en) - inloggen met root rechten
Bovenstaande info heb ik gebruikt en werkt prima. Het Crontab script moet inderdaad met root rechten gestart worden anders kan het
bestand niet aangepast worden. Met root rechten een bestand openen:

Code: Select all

sudo -i
Met dank aan: https://raspberrypi.tilburgs.com/back-up-rpi/