rsync ssh backup

rakso

Well-Known Member
hallo!

ich hab leider mein rsync-backup script verloren, das auf einem rechner läuft um einen server zu sichern.

auf dem zu sichernden server steht in authorized_Keys

command="rsync --server --sender -vlogDtprz --delete-excluded --numeric-ids . /"


wie muss der "client"-aufruf aussehen?

rsync -avvz -e "ssh -p $SSHPORT" root@$HOST:/ $DEST

will nich so recht


bitte um hilfe!
danke.
 
Mit dump macht man zyklische Backups, das heißt in regelmäßigen Abständen volle Backups und zwischenzeitlich inkrementelle.

Ein Level 0 dump (volles Backup) ist super um Dateien inklusive aller Flags zu transportieren. Die am besten funktionierende Möglichkeit ein System auf eine andere Parition zu ziehen.
 
Hi,

erstmal sorry, konkret werde ich dir nicht helfen können.

Dump/Restore gegen rsync: Es sind unterschiedliche Anwendungsgebiete. Mit rsync macht man Backups auf dem Dateisystem, man kann ohne Probleme von Linux auf FreeBSD syncen und sich das dann dort im Dateisystem angucken, durchgreppen und filtern, wie man lustig ist.
Schwierigkeit ist hier aber, dass das ganze eben auf FS-Ebene kopiert wird, man also ggf an Limitierungen des Dateisystems auf dem Backuprechner gebunden ist. Ist aber z.B. praktisch für Backups von Userdaten oder um mehrere Verzeichnisse auf dem selben Stand zu halten. Oder wenn man noch zusätzlich Linuxkisten hat , und eine einheitlich Backuplösung haben will.
Dump/Restore ist speziell auf ufs ausgelegt und kopiert alles in ein einzelnes Image rein und dabei wohl auch toleranter, was kaputte Dateisysteme und Einzelheiten des Dateisystems angeht. Das dann auf einem anderen Betriebssystem anzugucken, wird schon schwerer.

Zum eigentlichen Problem: Ich seh nur, dass du da die IDs numerisch rüberkopierst und nicht mehr existente Dateien löschst, beim Aufruf von rsync auf dem Host aber nicht.
An deiner Stelle würde ich entweder das Skript neu schreiben (mehr als einmal die manpage von rsync durchzugehen sollte das nicht sein) oder aber mit diesem Kommando auf den Server raufgehen und dann dort gucken, was probiert wurde, aufzurufen. Kannst du z.B. durch eine temporäre Änderung dieses Kommandos dort in ein `echo $SSH_ORIGINAL_COMMAND >> /tmp/sshcmd` o.Ä. ändern. Dauert ein paar Minuten, das zu testen, aber auch nicht mehr. Und ich glaube, das geht schneller, als auf jemanden zu warten, der rsync-Server-Kommandos aus dem Kopf kann.
 
Zuletzt bearbeitet:
so funktioniert es nun:

Code:
#!/opt/bin/bash


						
EXTRAOPT="--stats"
EXCLUDES=excludeliste-rsync
DATA_PATH=/volume1/srv-backups/
SERVER=fqdn.example.com
SSHPORT=2222
QUARTAL=2011Q1
BACKUPNAME=web0


if ! [ -d $DATA_PATH/$SERVER/$QUARTAL/$BACKUPNAME ] ; then
        mkdir -p $DATA_PATH/$SERVER/$QUARTAL/$BACKUPNAME
fi


time rsync  -avz --numeric-ids -e "ssh -p $SSHPORT" --delete --delete-excluded   \
        --exclude-from="$EXCLUDES"  $EXTRAOPT                   \
         root@$SERVER:/ $DATA_PATH/$SERVER/$QUARTAL/$BACKUPNAME
 
Zum eigentlichen Problem: Ich seh nur, dass du da die IDs numerisch rüberkopierst und nicht mehr existente Dateien löschst, beim Aufruf von rsync auf dem Host aber nicht.

du meinst, dass dateien auf dem host nicht gelöscht werden wenn ich welche im backup lösche? das soll ja auch nur in eine richtung gehen. es funktioniert, die UIDs/GIDs sind da, vermutlich muss der in .ssh/ hinterlegte aufruf nicht exakt der gleiche sein?!

Ein größeres Problem sehe ich aber in der Tat darin, dass ich nur jeweils 1:1 backups mache, ohne jegliches versioning mit inkrementellem backup. Es gibt zwar dafür auch schon scripts die rsync nutzen, allerdings verstehe ich das nicht, und die angst, später ein nicht nutzbares backup zu haben oder nicht zu wissen wie man es nutzt, ist groß. Daher mache ich jetzt vorläufig jedes Quartal einfach ein Vollbackup.

Andere Ideen..? Gibts da ein einfach zu bedienendes tool?


Es handelt sich bei dem backup-rechner um eine linux-appliance (NAS Serverchen), also bin ich mit rsync aufm richtigen dampfer.
 
Zuletzt bearbeitet:
Zurück
Oben