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
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