Ik kan niet genoeg benadrukken hoe belangrijk het maken van een backup is. Deze keer leg ik uit hoe je een Raspberry Pi in je netwerk run-time kunt backupen en restoren met je Debian Server.
Je kunt van je Raspberry Pi heel gemakkelijk een run-time backup maken met het Linux DD commando. DD is een zeer krachtig en nuttig hulpprogramma dat beschikbaar is op Unix en Unix-achtige besturingssystemen. Zoals in de handleiding staat, is het doel van DD het converteren en kopiëren van bestanden. Op Unix en Unix-achtige besturingssystemen zoals Linux, wordt bijna alles behandeld als een bestand, zelfs block devices. Dit maakt DD nuttig, onder andere, om schijven te klonen of gegevens te wissen.
Backup
Om een Raspberry Pi in mijn netwerk met ip-adres 192.168.1.75 en gebruiker ‘pi’ te backuppen gebruik ik het volgende commando op mijn Debian Server:
ssh pi@192.168.1.75 "sudo dd if=/dev/sda bs=10M status=progress | gzip -" | dd of=/mnt/Backup/Raspberry/OctoPrint/Image_Octoprint.gz
Hierbij is ‘if’ je input (Raspberry Pi) en ‘of’ je output (in mijn geval een lokatie op mijn NAS). Ik gebruik een blocksize (bs) van 10M zodat het wat sneller gaat met minder I/O verkeer. Verder gebruik ik gzip om de file-size kleiner te maken. Na het uitvoeren van bovenstaande regel wordt er naar het paswoord gevraagd van je Raspberry Pi en start de backup. Dit kan, afhankelijk van de grootte van je SD kaart/USB-drive best wel een tijdje duren, dus heb geduld.
Tip: als je handmatig ingeven van paswoord wilt vermijden, kun je gebruiken maken van het ‘sshpass’ package. In dat geval ziet de commando regel er als volgt uit:
sshpass -p wachtwoord ssh pi@192.168.1.75 "sudo dd if=/dev/sda bs=10M status=progress | gzip -" | dd of=/mnt/Backup/Raspberry/OctoPrint/Image_Octoprint.gz
Restore
Mocht je nu ooit een backup willen terugzetten dan moet je de SD Card/USB disk aansluiten op je Debian server en met het commando ‘lsblk’ uitzoeken onder welk device deze bekend is. Vervolgens kun je met het volgende commando je eerder gemaakte backup terugzetten (vul voor ‘/dev/sde’ het device in waaronder de SD Card/USB disk bij jouw Debian server bekend is):
gunzip -c /mnt/Backup/Raspberry/OctoPrint/Image_Octoprint.gz | dd of=/dev/sde bs=10M
Ook dit terugzetten kan een tijdje duren, dus wees geduldig. Nadat de backup is teruggezet kun je de SD Card/USB disk weer in je Raspberry Pi stoppen en deze opnieuw opstarten.