PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rsync -> server gepackt übers Web sichern



Blade
06.05.04, 20:32
Hi Leute,

habe mittlerweile viel über rsync gelesen, soll ganz easy sein, steh' im Moment aber immer noch auf'm Schlauch. :confused:

Kann mit folgendem Script echt easy lokal ein Daten-Verzeichnis des Servers in ein anderes Verzeichnis sichern:

#!/bin/sh
################################################## ##
# Script to do incremental rsync backups #
# Adapted from script found on the rsync.samba.org #
# Brian Hone 3/24/2002 #
# Andreas Runge 01.05.2004 - mod. and translated #
# This script is freely distributed under the GPL #
################################################## ##

##########################################
# Configure These Options #
##########################################

###################################
# mail address for status updates
# -> This is used to email you a status report
###################################
MAILADDR=xxx@domain.de

###################################
# mail addresses for status updates
# -> This is used to email the status report
###################################
# MAILADDR2=yyy@domain.de

###################################
# HOSTNAME
# -> This is also used for reporting
###################################
HOSTNAME=serverpc.domain.de

###################################
# directory to backup
ARCHIVEROOT=/BACKUP

#########################################
# From here on out, you probably don't #
# want to change anything unless you #
# know what you're doing. #
#########################################
# directory which holds our current datastore
CURRENT=main

# directory which we save incremental changes to
INCREMENTDIR=`date +%d.%m.%Y-%H:%M`

# options to pass to rsync
OPTIONS="--force --ignore-errors --delete --delete-excluded \
--exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -av"

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# make sure our backup tree exists
install -d $ARCHIVEROOT/$CURRENT

# our actual rsyncing function
do_rsync()
{
rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT
}

# our post rsync accounting function
do_accounting()
{
echo "Backup ausgeführt, am: $INCREMENTDIR">/tmp/rsync_script_tmpfile
echo "--> auf Server: $HOSTNAME">>/tmp/rsync_script_tmpfile
echo "----------------------------------------------------------------------------
------">>/tmp/rsync_script_tmpfile
# du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile
echo "Daten gesichert nach: $ARCHIVEROOT/" >> /tmp/rsync_script_tmpfile
echo "----------------------------------------------------------------------------
------" >> /tmp/rsync_script_tmpfile
echo "Mail $MAILADDR $MAILADDR2 -s $HOSTNAME < /tmp/rsync_script_tmpfile"
Mail $MAILADDR $MAILADDR2 -s $HOSTNAME < /tmp/rsync_script_tmpfile
echo "rm /tmp/rsync_script_tmpfile"
rm /tmp/rsync_script_tmpfile
}

# some error handling and/or run our backup and accounting
if [ -f $EXCLUDES ]; then
if [ -d $BACKUPDIR ]; then
# now the actual transfer
do_rsync && do_accounting
else
echo "Finde das Backup-Verzeichnis: $BACKUPDIR nicht!"; exit
fi
else
echo "Finde die Ausschlüsse/Excludes: $EXCLUDES nicht!"; exit
fi

Nun frage ich mich, wie ich das ganze Script modifizieren muss, um vom Server im Büro zu meinem privaten Server nachts ne Sicherung per Cronjob zum Laufen zu bringen? Ich will nur, dass eine Verzeichnis inkl. Unterverzeichnis inkrementell gesichert wird ... eventuell gepackt ...

Fromme Wünsche, aber so ein Skript muss es doch schon geben?

Danke und Grüße Blade

heatwalker
06.05.04, 21:47
Hey blade,
also ich mach das immer so:


#!/bin/bash
rsync -r -u -z -p -e "ssh -2" zu.sichernder.host:/pfad/zum/verzeichnis/ /lokales/verzeichnis/

Optionen:
-r Das Verzeichnis wird recursiv syncronisiert
-u Es werden nur neuere Files upgedatet
-p rechte an dateien werden übernommen
-e damit teilst du rsync mit das es über ssh arbeiten soll.
-z Die Daten werden komprimiert übertragen

Für mehr Optionen einfach mal "man rsync" eingeben. (-:

heatwalker

Blade
07.05.04, 07:42
Hi heatwalker, danke für Deinen raschen Tipp, hilft mir schon mal weiter, werde auch die man rsync mal durchstöbern.

Noch eine Frage zu Deinem Tipp: Dein script startest Du doch wohl per cronjob auf dem PC, auf dem die Daten gesichert werden?

Melde mich, wenn es klappt!

Grüße Blade

heatwalker
07.05.04, 07:56
Morjen Blade,
diese Code-Schnipsel habe ich so in einem cronjob laufen.

Viel Spass (-:

heatwalker

Blade
07.05.04, 12:03
Danke :-)
Bye Blade

Blade
13.06.04, 19:04
Hi Leute ... mein feedback,

... also, für alle, die es wissen möchten ... ich habe es geschafft, und ein supi-script läuft jede Nacht bei mir auf dem Server im Büro und bei mir zu Hause.

Alle Daten werden Nachts per Internet verschlüsselt gesichert ... auf meinen privaten Server --> per ssh.

Wer das Script braucht, der kann sich gerne bei mir per Mail melden, für hier ist es zu lang und langweilig :-)

Grüße Blade :D