PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Simples Backup + Rückspielung



Scott
22.12.03, 21:47
Hallo Forum,
ich suche eine simple Lösung wie ich Verzeichnisse auf meinem Root-Webserver per Cronjob auf die HDD backuppen und sie z.B. manuell per FTP abholen kann.

(Ich habe keinen Zugang zum Webserver > Rechenzentrum)

Die Verzeichnisse, die gebackuppt werden sollen wären:

/etc
/home
/usr/local/confixx
/...ist noch was wichtig?


und die MySQL-DB´s


Es wäre schön, wenn das Script automatisch gestartet wird, z.B. immer donnerstags um 1uhr nachts.

Wie siehts eigentlich mit der Rückspielung des Backups aus, wenn z.B. der Server mal neu aufgesetzt werden müsste? (Das Aufspielen macht der Webhoster-Support)

Kennt jemand von Euch ein gutes HowTo, dass auch für einen Newbie wie mich verständlich ist?

Vielen Dank schonmal für Eure Hilfe!!!

Silvio
22.12.03, 22:25
Hallo,

Ich wuerde 'rsynch' verwenden. Das kannst du gut in ein Script packen und dann ueber einen cron job ausfuehren lassen. Nehm mal die Suchfunktion hier im Forum. Es gabt vor kurzem einen guten Tread dazu.

Silvio

Bauchi
22.12.03, 22:32
hier ein kleines beispiel:
auf dem zu backuppenden host die datein per tar in ein archiv packen, das per bzip2 komprimieren und per scp auf deinen backupserver schieben

#!/bin/bash
mkdir -p /backup
tar cjf /verzeichniss /backup/verzeichniss.tar.bz2
tar cjf /verzeichniss1 /backup/verzeichniss1.tar.bz2
tar cjf /verzeichniss2 /backup/verzeichniss2.tar.bz2
scp /backup/verzeichniss* user@backuphost:/backupverzeichniss/
das war die einfachste und schnellste variante

besser: (backups machen, sie ne woche vorhalten und nach ner woche löschen)

#!/bin/bash
heute=`date +%m%d`
alt=`date -d 'one week ago' +%m%d`
tar cjf /verzeichniss /backup/verzeichniss_$heute.tar.bz2
tar cjf /verzeichniss1 /backup/verzeichniss_$heute_1.tar.bz2
tar cjf /verzeichniss2 /backup/verzeichniss_$heute_2.tar.bz2
scp /backup/verzeichniss_$heute* user@backuphost:/backupverzeichniss/
rm -f /backup/verzeichniss_$alt*

Scott
26.12.03, 12:28
Hi Silvio und Bauchi,
sorry, dass ich erst jetzt antworte!

Danke für das Scriptbeispiel.
Habe das getestet:

#!/bin/bash
heute=`date +%m%d`
#alt=`date -d 'one week ago' +%m%d`
tar cjf /srv/www/htdocs/web2/html /srv/www/htdocs/web2/backup/html_$heute.tar.bz2


Rechte des Scripts 777
Ordner /...../backup ist vorhanden

Leider kommt immer folgende Fehlermeldung:

tar: /srv/www/htdocs/web2/backup/html_1226.tar.bz2: Cannot stat: No such file or directory
tar: /srv/www/htdocs/web2/html: Cannot open: Is a directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors


Ich hoffe ihr könnt mir da nochmal helfen!

Schöne Weihnachten!

Cosmo
26.12.03, 12:39
Der Fehler ist eigentliche selbsterklärend=
*html_1226.tar.bz2: Cannot stat: No such file or directory*
*html: Cannot open: Is a directory*

der richtige aufruf ist genau andersherum:

tar -cjf /backup.tar.bz2 /srv/www/htdocs/web2/html

Svenny
26.12.03, 15:41
auch eine nette alternative mir rsync:



#!/bin/bash


echo "-------Backup Start `date` ------"

## ETC, HOME, ROOT ##
rsync -cav --delete /etc /data/backup/
rsync -cav --delete /home /data/backup/

## WEB ##
rsync -cav --delete /var/www /data/backup/
rsync -cav --delete /var/cache/bind /data/backup/
rsync -cav --delete /var/cache/awstats /data/backup/
rsync -cav --delete /var/lib/mysql /data/backup/
rsync -cav --delete /var/log /data/backup/

rsync -cav --delete /var/awaas_home_dir_sic /data/backup/

rsync -cav --delete /root /data/backup/


echo "-----Backup finished `date` -----"
echo "-------------------------------------------------------------------"


dann der Crontab:



# Backup alle 4 stunden
0 0,4,8,12,16,20 * * * /root/backup.sh >> /root/backup.log 2>&1

Scott
26.12.03, 21:50
Dankeschön!

Hat super geklappt! Stimmt, der Befehl war falsch herum!


Ich habe jetzt schon öfters gelesen, dass man die MySQL-DB nicht so backuppen soll, da die DB für den Zeitpunkt stillsteht.

Wie kann ich denn die MySQL-DB richtig backuppen (und widerherstellen, wenns mal kracht)

downtown
12.01.04, 21:38
mysqldump -c --opt -u[username] -p[passwort] --databases [datenbank] > /pfad/zum/backup.sql

so mach ichs jeweils.
ich habe dazu einen mysql-user backup erstellt, welcher nur lesen darf ;)