Mijn vorige backup oplossing maakte gebruik van rDiff Backup.
Dit is een reverse diff backup oplossing waarbij de courante versie (v0) altijd volledig is, en V-1 een reverse diff is van V0, V-2 een reverse diff van V-1 etc.
Op windows had ik dan via cygwin, volume shadow copy (voor locked files) en cwRsync een backup scriptje opgezet naar de linux box.
Dit zette dan de volledige contents over anar de server. Daar draaide ik dan periodiek rDiff backup om versies bij te gaan houden.
Het kostte mij inderdaad geen geld, maar wel veel tijd en hoewel ik er mij mee geämuseerd heb was het toch niet zo waterdicht als mijn CrashPlan backup systeem dat ik nu heb opgezet.
Vooral omdat de periodieke backups arbeidsintensief waren voor de clients moest ik ofwel de PC snachts aan laten staan (electriciteitskosten) ofwel dit laten draaien if idle. Dit laatste had ik zo ingesteld en toen ik overschakeld was mijn meest recente backup reeds 6 maand geleden omdat mijn PC dus nooit idle was als hij aanstond.
enkele scripts kwestie dat je er misschien iets mee bent (waarschuwing, veel tekst).
makeBackupauto.cmd
Code: Selecteer alles
@echo off
call cleanup
cd C:\backup\cwRsync
vshadow -script=vss-setvar.cmd -exec=vss-exec.cmd c:
exit %errorlevel%
cleanup.cmd
Code: Selecteer alles
@echo off
call vss-setvar.cmd
vshadow -ds=%SHADOW_ID_1%
vss-setvar.comd (autogenerated elke run door vshadow)
Code: Selecteer alles
@echo.
@echo [This script is generated by VSHADOW.EXE for the shadow set {e5a649fe-aa39-4635-af3d-f7e9e93b7468}]
@echo.
SET SHADOW_SET_ID={e5a649fe-aa39-4635-af3d-f7e9e93b7468}
SET SHADOW_ID_1={770231d2-513b-466c-911c-bb7cd73365c2}
SET SHADOW_DEVICE_1=\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
vss-exec.cmd (de main logica)
Code: Selecteer alles
@echo off
call %~dp0vss-setvar.cmd
REM Define temporary drive letter
dosdev X: %SHADOW_DEVICE_1%
@ECHO OFF
REM Make environment variable changes local to this batch file
SETLOCAL
REM ** CUSTOMIZE ** Specify where to find rsync and related files (C:\CWRSYNC)
SET CWRSYNCHOME=C:\backup\cwRsync
REM Set CYGWIN variable to 'nontsec'. That makes sure that permissions
REM on your windows machine are not updated as a side effect of cygwin
REM operations.
SET CYGWIN=nontsec
REM Set HOME variable to your windows home directory. That makes sure
REM that ssh command creates known_hosts in a directory you have access.
SET HOME=%HOMEDRIVE%%HOMEPATH%
REM Make cwRsync home as a part of system PATH to find required DLLs
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
REM ** CUSTOMIZE ** Enter your rsync command(s) here
SET USER=usr
SET RSYNC_PASSWORD=pass
REM we store the errorlevel after this command, because this is the critical command, all the rest is pre and post processing.
rsync -rv --del --delete-excluded --exclude-from=excludes.txt --chmod=Dugo+X "/cygdrive/x/Documents and Settings/user/My Documents" nas::user/MyDocuments
SET errorNum=%errorlevel%
echo Backup van %date% %time% : %errorNum% >> backuplog.txt
REM Delete temporary drive letter
dosdev -r -d X:
exit %errorNum%
Diff & Cleanup script (op de server):
Code: Selecteer alles
#! /bin/sh
mailtoOK="[email protected]"
mailtoFAIL="[email protected] root"
rdiff-backup --force --remove-older-than 26W /mnt/raid/rdiff 2>&1 | tee backupLog.tmp
if [ $? != 0 ]; then
cat backupLog.tmp | mail -s "rdiff-backup cleaning failed" $mailtoFAIL
else
cat backupLog.tmp | mail -s "rdiff-backup cleaning completed" $mailtoOK
fi
rdiff-backup /mnt/raid/rsync /mnt/raid/rdiff 2>&1 | tee backupLog.tmp
if [ $? != 0 ]; then
cat backupLog.tmp | mail -s "rdiff-backup failed" $mailtoFAIL
else
cat backupLog.tmp | mail -s "rdiff-backup completed" $mailtoOK
fi
had dan nog verdere scripts die die backuplog parseten om te kijken of er errorlevels != 0 in kwamen en bij 5 failed runs klein warninkje op desktop etc, zoals ik al zei, ik heb mij er wel wat mee geämuseerd.