Vroeg of laat geven de SD-kaarten van de Raspberry Pi’s problemen, bijvoorbeeld door stroomuitval en door verkeerde instellingen. Zodra je je Raspberry Pi hebt voorzien van Raspbian en eventueel Domoticz wil je natuurlijk een Raspberry Pi backup hebben voor het geval er iets fout gaat en je Raspberry niet meer boot.
In dit artikel leggen we uit hoe je een automatische Raspberry Pi backup kunt instellen. Het doel is om de backup iedere nacht om 03.00 uur te laten uitvoeren en de Raspberry Pi Backup weg te schrijven naar een folder op je NAS door middel van een NFS share (uiteraard kun je ook een USB-stick of externe harddisk gebruiken). Daarnaast willen we dat de Raspberry Pi gewoon blijft draaien tijdens de backup en dat je de Raspberry Pi backup direct op een nieuwe SD-kaart kunt restoren. We gaan beginnen!
Benodigdheden
Maak een de folder aan op je Raspberry Pi. Ik heb gekozen voor /mnt/backup, maar het mag een willekeurig folder zijn:
1 |
sudo mkdir /mnt/backup |
Mounten na reboot
Uiteraard willen we dat de mount naar je NAS na een reboot van de Raspberry Pi ook aanwezig is. Hiervoor dienen we een wijziging aan te brengen ins fstab:
1 |
sudo nano /etc/fstab |
Voeg onderstaande regel toe:
1 |
//192.168.2.157/Backups/Backup_Raspberry_Pi /mnt/backup cifs comment=systemd.automount,defaults,rw,username=pietje,password=puk,uid=1000, gid=46 0 0 |
- 192.16.8.2.157 -> IP-adres van je NAS
- Backups/Backup_Raspberry_Pi -> de folder op je NAS die je wilt mounten
- /mnt/backup -> de folder op je Raspberry Pi
- comment=systemd.automount -> hiermee geven we aan dat de mount alleen plaatsvindt als er om gevraagd wordt. Aangezien ik alleen de WLAN-interface op de Raspberry gebruikt moest ik deze voorwaarde toevoegen, aangezien de Raspberry Pi na een reboot wilde mounten, terwijl de Wi-Fi-verbindig nog niet opgestart was.
- username=pietje -> gebruikersnaam van je NAS
- password=puk -> wachtwoord van je NAS
Test de mount met commando:
1 |
sudo mount -a |
Als er een fout in fstab zit krijg je dit te zien. Eventueel kun je onderstaand commando gebruiken om bijvoorbeeld te controleren dat je gebruikersnaam en wachtwoord correct zijn:
1 |
sudo mount.cifs //192.168.2.157/Backups/Backup_Raspberry_Pi /mnt/backup -o user=username,pass=password,sec=ntlmssp,uid=1000,gid=46 |
Corrigeer eventuele fouten en download vervolgens hier het script. Pak het script uit met een extracter (bv. WinRar) en plaats het .sh-bestand in een folder naar keuze. Ik heb het script op mijn NAS geplaatst, zodat ik het ook kan gebruiken voor mijn andere Raspberry Pi’s.
Maak het script uitvoerbaar:
1 |
sudo chmod +x /mnt/backup/system_backup.sh |
Crontab
De laatste stap is om het script toe te voegen aan crontab. Aangezien het script uitgevoerd moet worden als root moeten we de root crontab wijzigen:
1 |
sudo crontab -e |
Voeg onderstaande regel toe (let op dat je de locatie wijzigt naar de folder waar je het script hebt opgeslagen):
1 |
0 3 * * * /mnt/backup/system_backup.sh |
Er wordt nu iedere nacht om 3 uur een backup van de SD-kaart van je Raspberry Pi gemaakt.
Variabelen in het script
Het gebruikte script heeft twee variabelen, namelijk backup_path en retention_days. De eerste is de locatie waar de backup wordt opgeslagen, de tweede is het aantal dagen dat een backup wordt bewaard. Deze twee waarden kun je zelf aanpassen.