Back-up RPI to Synology
Posted: Mon 03 Oct 2022, 13:43
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.
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
Zet hierin onderstaande 2 regels (aanpassen met eigen gegevens)
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.
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:
In mijn geval wordt het dan:
Sla fstab op en sluit de nano editor af. Test nu de mount met het commando:
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:
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:
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:
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!
Voeg onderstaande regel toe aan de crontab. Pas eventueel het pad aan als je het .sh-bestand niet in /mnt/backup hebt geplaats.
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:
Met dank aan: https://raspberrypi.tilburgs.com/back-up-rpi/
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
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
Code: Select all
username=[username]
password=[password]
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
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
Code: Select all
//192.168.1.10/rpi /mnt/backup cifs credentials=/home/pi/.nascreds,nofail,vers=1.0,x-systemd.automount 0 0
Code: Select all
sudo mount -a
Code: Select all
cat -v /etc/fstab
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
Code: Select all
sudo chmod +x /mnt/backup/system_backup.sh
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
Code: Select all
0 3 * * * /mnt/backup/system_backup.sh
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