Eigenlijk moet je altijd backuppen, zelfs al doe je geen update.
Backups moeten volautomatisch lopen zodat je altijd recent werk hebt en liefst met versies.
Op mijn Syno gebruik ik al jaren Crashplan, die zorgt meteen voor versies etc. Omdat mijn backupset te groot geworden is geeft die meer en meer problemen en wordt het geheugengebruik echt onbruikbaar groot (moet al 2GB toewijzen).
Daarom afgelopen weekend op zoek gegaan naar een mogelijkheid om met rsync versies bij te houden en vrij snel en makkelijk gevonden.
Onderstaand script gaat de hele domoticz folder kopieren naar een backupfolder.
Per dag wordt een versie bijgehouden met enkel de wijzigingen. Niet gewijzigde bestanden worden symlinks zodat ze nauwelijks extra ruimte innemen.
Nu enkel nog een manier vinden om oudere backups op te kuisen zodat bv van de laatste maand elke dag een versie blijft, van 1 maand tot een jaar een versie per week en van de oudere 1 per maand.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| #------ BEGIN -------
NAME="domoticz"
SOURCE="/volume1/@appstore/domoticz/"
DESTINATION="/volume1/homes/guy/backup/$NAME"
NOW=$(date +"%Y-%m-%d")
LOGFILE=/volume1/homes/guy/backup/_logs/$NAME/$NOW.txt
echo ------------------------------------ START $NAME -- $(date +"%Y-%m-%d %H:%M:%S") UTC+2 | tee -a $LOGFILE
rsync -aP --exclude-from '/volume1/homes/guy/backup/excludedfiles.txt' --stats --delete --link-dest="$DESTINATION/__prev/" "$SOURCE" "$DESTINATION/$NOW" | tee -a $LOGFILE
rm -f "$DESTINATION/__prev"
ln -s "$NOW" "$DESTINATION/__prev"
echo ------------------------------------ END $NAME -- $(date +"%Y-%m-%d %H:%M:%S") UTC+2 | tee -a $LOGFILE
#------ END ------- |
Source/destination etc is in variablen gezet omdat dit deel uit maakt van een groter backup script die meerdere folders en RPi's bewaard.
[
Voor 3% gewijzigd door
Verwijderd op 31-10-2016 08:20
]