Rsnapshot

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen

rsnapshot ist eine Software zur Erstellung von Datensicherungen von lokalen oder entfernten Rechnern. "snapshot" leitet sich ab von Schnappschuss.

Neben einer vollständigen Datensicherung (Full Backup) können auch platzsparende, inkrementelle Datensicherungen gemacht werden, wobei Hardlinks zum Einsatz kommen. rsnapshot basiert auf rsync. Datensicherungen von entfernten Rechnern werden mittels "rsync über ssh" oder per rsync-Server über das IP-Netzwerk vorgenommen.

rsnapshot läuft auf allen gängigen UNIX-basierten Betriebssystemen und ist als Freie Software unter den Bedingungen der GPL im Quelltext erhältlich.

Konfiguration

rsnapshot.conf

Änderungen gegenüber Default-Konfig /etc/rsnapshot.conf:

snapshot_root   /data/backup/snapshots

cmd_ssh /usr/bin/ssh

#interval       hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

verbose         3

sync_first      0

use_lazy_deletes        0

backup  /etc/           localhost/      one_fs=1,+rsync_long_args=--exclude-from=/etc/rsnapshot_exclude_server

backup_script           /root/bin/backup_mysql.sh localhost dbname   localhost/database-snapshots/dbname

Wichtig sind die Tabs zwischen den Einträgen.

Beispiel /etc/rsnapshot_exclude_server:

/srv/www/htdocs/bilder
/srv/www/htdocs/videos

Cron

/etc/cron.daily/rsnapshot:

#!/bin/sh

/usr/bin/rsnapshot daily
exit 0

/etc/cron.weekly/rsnapshot:

#!/bin/sh

/usr/bin/rsnapshot weekly
exit 0

/etc/cron.monthy/rsnapshot:

#!/bin/sh

/usr/bin/rsnapshot monthly
exit 0

MySQL Backup Script

/root/bin/backup_mysql.sh:

#!/bin/bash

# Backup of remote or local MySQL databases for using with rsnapshot
# Author: Ralf Krüdewagen
#$1: host
#$2: database

HOST=$1
DB=$2
USER=root
DB_USER=root
DB_PW=password
REMOTE_DIR=/data/backup/database-snapshots
LOCAL_DIR=/data/backup/database-snapshots-local

###################################################################
# method for copying dumps from remote machine to rsnapshot sever.
# This method shall be used for backup_script. Single runs are needed for each DB.
# Advantage: rsnapshot compares the files and saves disk space.
###################################################################
function backup_remote ()
{
DB=$1
ssh $USER@$HOST "cd $REMOTE_DIR;mysqldump -u $DB_USER -p$DB_PW $DB > mysql-$DB.sql;chmod 600 mysql-$DB.sql"
scp $USER@$HOST:$REMOTE_DIR/mysql-$DB.sql .
}

function backup_local ()
{
DB=$1
mysqldump -u $DB_USER -p$DB_PW $DB > $LOCAL_DIR/mysql-$DB.sql
chmod 600 $LOCAL_DIR/mysql-$DB.sql
cp $LOCAL_DIR/mysql-$DB.sql .
}

#backup_remote $DB
backup_local $DB

Alternativen

Dirvish: http://www.dirvish.org/

Literatur

Weblinks