meta data for this page
This is an old revision of the document!
Time Backup
Auf dem Server wird das Script make_time_backup.sh in /volume1/TimeBackup stündlich ausgeführt.
Es vergleicht den Dateibestand mit dem Spiegel-Dateibestand in /volume1/TimeBackup/mirror. Ist eine Datei verändert worden, speichert es die vorherige Version weg unter /volume1/TimeBackup/history/<Zeitstempel>/Dateipfad und aktualisiert sie im Spiegel. Wurde eine Datei gelöscht, sichert er die letzte Version in gleicher Weise weg und löscht sie dann im Spiegel.
Damit baut sich eine Mutationsgeschichte aller Dateien auf. Dank der Dateisuche in Synology Filestation lässt sich nach einer bestimmten Datei suchen und es werden so alle Versionen aufgelistet.
Script:
#!/bin/sh
sendOK()
{
echo Time Backup KSCO abgeschlossen.
}
transfer()
{
part=$(echo $1 | tr '/' '_')
tgt=$2
log="$BPDIR"/"timebackup.running.log"
fmt="%M %f"
echo "Backup $1" >> $log
echo "---------------------------------------------------" >> $log
CMDLINE="-rtz \
--partial \
--human-readable \
--delete \
--delete-excluded \
--no-owner \
--no-group \
--log-file=$log \
--exclude #recycle \
--exclude-from /volume1/TimeBackup/ksco_excluded.txt \
--partial \
--backup \
--backup-dir=$BPDIR/$1/"
rsync -e 'ssh -p 7247' $CMDLINE --log-file-format="%M %f" "$SOURCE""$1"/ "$TARGET""$tgt"/
if [[ ! "$?" == "0" ]]
then
echo "Error in $1" >> $BPDIR/timebackup.err
fi
}
set -e
TARGET=/volume1/TimeBackup/mirror/
SOURCE=/volume1/
BPDIR="$TARGET"../history/$(date +"%Y-%m-%d_%H%M")
[ ! -d $BPDIR ] && mkdir $BPDIR
[ -e $BPDIR/timebackup.err ] && rm $BPDIR/timebackup.err
transfer accounts accounts
transfer bookkeeping bookkeeping
transfer funds funds
transfer ksco ksco
transfer partners partners
transfer research research
transfer risk risk
transfer support support
transfer transfer transfer
transfer homes homes
mv $BPDIR/timebackup.running.log $BPDIR/timebackup.log
[[ "$?" == "0" ]] && sendOK