rsync naar een linux systeem zodat de rechten behouden blijven.
Je kan ook overwegen om gewoon de hele root te kopieren. Gaat sowieso sneller gaan dan hele image maken.
Ik maak een backup van enkele Pi's met dit script:
In excludedfiles.txt zet je wat niet moet meekomen, temp-, log-files etc. Even de logging in de gaten houden om te zien wat telkens gekopieerd wordt.
Een restore doe ik door de image van Jessie-Lite op SD te zetten, opstarten, IP adres zoeken en dit commando:
bv ./RestoreRPI.sh PiCam1 192.168.2.217
Omdat alles gerestored wordt staat de RPi na herstart weer exact als voorheen.
Script is nu niet specifiek voor Domoticz, maar als je Domoticz op een RPi draait zou het perfect moeten werken.
Edit: Een logfile ziet er zo uit, als er niks diende gekopieerd te worden.
Files die gewijzigd werden staan vermeld onder 'receiving...'.
Zoals je ziet aan de timestamps duurt een backup op deze manier amper 15 seconden.
Uiteraard zal dat iets langer zijn indien er veel updates waren. Bv na apt-get upgrade en rpi-update, dan zie ik iets van 4 minuten.
Je kan ook overwegen om gewoon de hele root te kopieren. Gaat sowieso sneller gaan dan hele image maken.
Ik maak een backup van enkele Pi's met dit script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| #!/usr/bin/env ash cp /volume1/homes/guy/BackupWWW/RPI.sh /usr/local/etc/rc.d/RPI.sh NOW=$(date +"%Y-%m-%d") LOGFILE=/volume1/homes/guy/BackupWWW/_logs/RPi-PiHole-$NOW.txt echo -------------------------------------------- Syncing RPi-PiHole ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE rsync -av --stats --delete -e "ssh -i /root/.ssh/id_rsa" --exclude-from '/volume1/homes/guy/BackupWWW/excludedfiles.txt' root@192.168.2.2:/ /volume1/homes/guy/BackupWWW/RPi-PiHole/ >> $LOGFILE echo -------------------------------------------- Finished ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE NOW=$(date +"%Y-%m-%d") LOGFILE=/volume1/homes/guy/BackupWWW/_logs/RPi-PiCam1-$NOW.txt echo -------------------------------------------- Syncing RPi-PiCam1 ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE rsync -av --stats --delete -e "ssh -i /root/.ssh/id_rsa" --exclude-from '/volume1/homes/guy/BackupWWW/excludedfiles.txt' root@192.168.2.11:/ /volume1/homes/guy/BackupWWW/RPi-PiCam1/ >> $LOGFILE echo -------------------------------------------- Finished ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE NOW=$(date +"%Y-%m-%d") LOGFILE=/volume1/homes/guy/BackupWWW/_logs/RPi-PiCam2-$NOW.txt echo -------------------------------------------- Syncing RPi-PiCam2 ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE rsync -av --stats --delete -e "ssh -i /root/.ssh/id_rsa" --exclude-from '/volume1/homes/guy/BackupWWW/excludedfiles.txt' root@192.168.2.12:/ /volume1/homes/guy/BackupWWW/RPi-PiCam2/ >> $LOGFILE echo -------------------------------------------- Finished ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE NOW=$(date +"%Y-%m-%d") LOGFILE=/volume1/homes/guy/BackupWWW/_logs/RPi-PiCam3-$NOW.txt echo -------------------------------------------- Syncing RPi-PiCam3 ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE rsync -av --stats --delete -e "ssh -i /root/.ssh/id_rsa" --exclude-from '/volume1/homes/guy/BackupWWW/excludedfiles.txt' root@192.168.2.13:/ /volume1/homes/guy/BackupWWW/RPi-PiCam3/ >> $LOGFILE echo -------------------------------------------- Finished ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE NOW=$(date +"%Y-%m-%d") LOGFILE=/volume1/homes/guy/BackupWWW/_logs/RPi-Kevin-Domoticz-$NOW.txt echo -------------------------------------------- Syncing RPi-Kevin-Domoticz ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE rsync -av --stats --delete -e "ssh -i /root/.ssh/id_rsa -p 1605" --exclude-from '/volume1/homes/guy/BackupWWW/excludedfiles.txt' root@kevin.minja.be:/home/pi /volume1/homes/guy/BackupWWW/RPi-Kevin-Domoticz/ >> $LOGFILE echo -------------------------------------------- Finished ---- $(date +"%Y-%m-%d %H:%M:%S") >> $LOGFILE |
In excludedfiles.txt zet je wat niet moet meekomen, temp-, log-files etc. Even de logging in de gaten houden om te zien wat telkens gekopieerd wordt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| /var/lib/pacman/sync/* /cdrom/* /dev/* /proc/* /sys/* /tmp/* /run/* /mnt/* /media/* /lost+found /var/swap /var/run . /etc/fake-hwclock.data /etc/resolv.conf /run/ /tmp/ /var/lib/ntp/ /var/lib/ntp/ntp.drift /var/log/ /var/www/scheduleLog.txt /var/lib/nginx/fastcgi/ /var/lib/systemd/random-seed /var/lib/systemd/rfkill/platform |
Een restore doe ik door de image van Jessie-Lite op SD te zetten, opstarten, IP adres zoeken en dit commando:
bv ./RestoreRPI.sh PiCam1 192.168.2.217
code:
1
2
3
4
5
6
7
| #!/usr/bin/env ash HOST="$1" IP="$2" EXCL='/volume1/homes/guy/BackupWWW/excludedfiles.txt' echo /volume1/homes/guy/BackupWWW/RPi-$HOST/ root@$IP:/ rsync -Irv --links --delete --stats -e "ssh -i /root/.ssh/id_rsa" --exclude-from $EXCL /volume1/homes/guy/BackupWWW/RPi-$HOST/ root@$IP:/ |
Omdat alles gerestored wordt staat de RPi na herstart weer exact als voorheen.
Script is nu niet specifiek voor Domoticz, maar als je Domoticz op een RPi draait zou het perfect moeten werken.
Edit: Een logfile ziet er zo uit, als er niks diende gekopieerd te worden.
Files die gewijzigd werden staan vermeld onder 'receiving...'.
Zoals je ziet aan de timestamps duurt een backup op deze manier amper 15 seconden.
Uiteraard zal dat iets langer zijn indien er veel updates waren. Bv na apt-get upgrade en rpi-update, dan zie ik iets van 4 minuten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| -------------------------------------------- Syncing RPi-PiCam2 ---- 2016-10-05 19:24:27 receiving incremental file list Number of files: 61806 Number of files transferred: 0 Total file size: 1575367818 bytes Total transferred file size: 0 bytes Literal data: 0 bytes Matched data: 0 bytes File list size: 1353066 File list generation time: 0.003 seconds File list transfer time: 0.000 seconds Total bytes sent: 35994 Total bytes received: 1387989 sent 35994 bytes received 1387989 bytes 91869.87 bytes/sec total size is 1575367818 speedup is 1106.31 -------------------------------------------- Finished ---- 2016-10-05 19:24:42 |
[ Voor 11% gewijzigd door Verwijderd op 06-10-2016 10:36 ]