Komplettsicherung der SD-Card eines beliebigen RPi’s auf ein beliebiges NAS im laufendem Betrieb
...vielleicht ist es ja für den einen oder anderen von euch eine nette Hilfe, da alles im laufendem Betrieb funktioniert.
Das zurückspielen eines Backups auf die SD-Card muss natürlich manuell und händisch gemacht werden
ACHTUNG: Es wird IMMER das komplette SD-Card Volumen gesichert.
01. Es kann sowohl per CIFS als auch per NFS gesichert werden
02. Die Speicherung erfolgt über das Netzwerk, egal ob LAN oder WLAN
03. Die Zeitpunkte der Sicherung sind in einem „cronjob“ auf dem Pi definiert
Ich habe hier für mich den 1. und 15. des Monats definiert, da ja das Monatsende variiert.
04. Die Anzahl der gespeicherten Backups ist in der „backup.sh“ definiert mit „BACKUP_ANZAHL“
05. Nach erreichen der „BACKUP_ANZAHL“ auf dem NAS werden die ältesten gelöscht
06. Das kann man natürlich ändern auf 3 oder auf 10, wie man will....
07. Die Sicherung erfolgt durch eine Datei und diese wird als ausführbare Datei (backup.sh) auf dem Pi abgelegt
08. Dies erfolgt unter „/home/pi“, also wechselt man dorthin mit
08. Und erstellt die zunächst leere Datei „backup.sh“ mit
09. Dann kopiert man den Inhalt der beigelegten Varianten (CIFS oder NFS) dort hinein -> per copy and paste
10. Nachdem sie ausführbar gemacht wurde mit
11. wird sie zu „/usr/local/bin“ verschoben mit
sudo mv /home/pi/backup.sh /usr/local/bin/
12. Zum Abschluss muss noch ein Verzeichnis „/mnt/nas“ erstellt werden (oder was beliebiges, muss halt nur in der „backup,sh“ mit „BACKUP_PFAD“ übereinstimmen) - dies macht man mit
13. Nun sollte man den CRONJOB auf dem Pi anlegen mit
14. Hier am Ende eintragen und dann mit ctrl+x beenden und speichern
0 3 1 * * /usr/local/bin/backup.sh > /dev/null
0 3 15 * * /usr/local/bin/backup.sh > /dev/null
Der Cronjob wir also bei mir immer um 03:00 Uhr Nachts gespeichert (im laufendem Betrieb) und zwar am 1. und 15. jeden Monats
Danach den RPi nochmal zum Spaß und zur Sicherheit neu booten und gemütlich zurücklehnen. Jetzt werden die lästigen Komplettsicherungen der SD-Card automatisch durchgeführt. Bei mir läuft das schon seit mehr als einem Jahr sehr stabil, auch von mehreren RPis auf ein Synology-NAS. Die RPis sind sowohl per LAN als auch WLAN verbunden. Natürlich habe ich (bei mehreren RPis) auf der NAS unter "NetBackupPi" weitere Verzeichnisse angelegt und jeder RPi speichert jeweils in SEIN Verzeichnis. Jeder RPi hat also eine spezielle "backup.sh" und die Zeiten im Cronjob sind auch anders.
Viel Spaß
Zum Schluss das wichtigsten, die Varianten der "backup.sh"
für NFS :
#!/bin/bash
#Festplatte einbinden
sudo mount -t nfs -o soft IP:/FREIGABE /mnt/nas
#Beispiel: sudo mount -t nfs -o soft 192.168.2.5:/volume1/NetBackupPi /mnt/nas
#Variablen
BACKUP_PFAD="/mnt/nas/"
BACKUP_ANZAHL="5"
BACKUP_NAME="Sicherung"
#Backup erstellen
sudo dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d).img bs=1MB
#Alte Sicherung löschen
pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popd
#Festplatte auswerfen
sudo umount /mnt/nas
Alles anzeigen
für CIFS:
#!/bin/bash
#Festplatte einbinden
mount -t cifs -o user=USERNAME-NAS,password=PASSWORD-NAS,rw,file_mode=0777,dir_mode=0777 //IP/FREIGABE /mnt/nas
# Beispiel: mount -t cifs -o user=admin,password=marvel,rw,file_mode=0777,dir_mode=0777 //192.168.2.5:/volume1/NetBackupPI /mnt/nas
#Variablen
BACKUP_PFAD="/mnt/nas/"
BACKUP_ANZAHL="5"
BACKUP_NAME="Sicherung"
#Backup erstellen
dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d).img bs=1MB
#Alte Sicherung löschen
pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popd
#Festplatte auswerfen
umount /mnt/nas
Alles anzeigen