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