# Sinnvolles Backup



## darkness_08 (23. Aug. 2012)

Hallo

Ich mache mir gerade Gedanken, wie ich ein Bakup auf einen externen Server durchführe.

Grundsätzlich möchte ich das ganze per rsync durchführen.

Das Verzeichnis /var/backup gehört standartmäßig root. Da ich das Backup nicht als root durchführen möchte, meine Frage:

Kann ich die Gruppenenstellung des Verzeichnis ändern oder hat ISPConfig damit ein Problem?

Zweite Frage:
Kann man in die Backups der Benutzer auch die MySQL-Datenbanken mit integrieren?

Gruß


----------



## F4RR3LL (23. Aug. 2012)

Du kannst an beliebigem Ort vor dem rsync sqldumps anlegen. 
Aber was hindert Dich zum rsyncen root zu benutzen? Das ist einfach am saubersten.

Ohne es in ne Diskussion zu werfen, aber es gibt echt andere Schwachstellen als nen rootuser der via authkey einloggt.

Gruß Sven


----------



## darkness_08 (23. Aug. 2012)

Ich hätte gedacht das die Dumps von ISPConfig mit erzeugt werden. So hat jeder Nutzer seine Dumps.  Ansonsten müsste ich ja für jeden Nutzer ein Script laufen lassen, oder eine Schleife mit den verschiedenen Nutzern.  Und das mit dem root mag ich einfach nicht  Aber notfalls geht das natürlich auch


----------



## F4RR3LL (23. Aug. 2012)

Zitat von darkness_08:


> Und das mit dem root mag ich einfach nicht


Schwaches Argument, aber jeder legt sich halt die Steine so in den Weg wie er es mag 


Bzgl der Datenbank du kannst auch nen Sqldump mit allen Datenbanken auf einmal erstellen, das wird genau ein Dump. 
Codeschnipsel aus meinem Script:

```
/usr/bin/mysqldump -u root --password='totalgeheim' --all-databases > /pfad/zum/backup/all_dbs.sql
```
ich lasse zwar auch alle Datenbanken nochmal extra sichern... aber mit obigem hat man einmal alles als Gesamtpaket.

Gruß Sven


----------



## darkness_08 (23. Aug. 2012)

Zitat von F4RR3LL:


> ich lasse zwar auch alle Datenbanken nochmal extra sichern... aber mit obigem hat man einmal alles als Gesamtpaket.<br />


Ok, das Gesamtdump kenne ich. Wie machst du das mit den Einzeldumps


----------



## F4RR3LL (23. Aug. 2012)

Ich hab schlicht ein Script laufen das mir die Datenbanken auch nochmal einzeln als Dump zieht. 
Gruß Sven


----------



## darkness_08 (23. Aug. 2012)

ok, dann schaue ich mal.

Danke schon mal


----------



## neurex (30. Aug. 2012)

Also ich habe mir nen Cron angelegt der ein Bashscript ausführt was nichts anderes macht als die Datenbank per mysqldump zu exportieren und dann einfach alle Verzeichnisse unter /srv/www rsynct.

Hab dazu nen extra User auf dem Backupserver angelegt (PubKey-Methode) der nur für den rsync-Prozess root-Rechte hat. Funktioniert soweit ganz gut aber...

...lässt jemand von euch die Backups auf dem Server rotieren so das man verschiedene "Stände" einer Sicherung hat? Wenn ja gibts dafür schon ein Script oder ähnliches???


----------



## darkness_08 (30. Aug. 2012)

Ich habe es jetzt so gelöst:

Per Cron werden auf dem Server die MySQL-Daten und verschiedene Verzeichnisse gesichert. Dabei mache ich ein komplettes DUMP der SQL-Datenbank und zusätzlich werden noch alles Datenbanken jeweils seperat gesichert. 

Das Backup auf einen anderen Server erfolgt dann per rsync und pub-Key. 

Bisher wird für jeden Tag ein neues Verzeichnis erstellt. Somit habe ich die möglichkeit ggf. verschiedene Stände zurück zuspielen.

Einziger Nachteil bisher:
Durch die umbenennung der ISP-Config-Backups (Neuste ist immer 1) werden diese jedemal per rsync komplett übertragen.


----------



## gpi (19. Sep. 2012)

Zitat von neurex:


> Also ich habe mir nen Cron angelegt der ein Bashscript ausführt was nichts anderes macht als die Datenbank per mysqldump zu exportieren und dann einfach alle Verzeichnisse unter /srv/www rsynct.
> 
> Hab dazu nen extra User auf dem Backupserver angelegt (PubKey-Methode) der nur für den rsync-Prozess root-Rechte hat. Funktioniert soweit ganz gut aber...
> 
> ...lässt jemand von euch die Backups auf dem Server rotieren so das man verschiedene "Stände" einer Sicherung hat? Wenn ja gibts dafür schon ein Script oder ähnliches???



Hallo neurex,

ich sichere wie folgt:



```
#!/bin/bash
# backup.sh

# Sicherung der mysql-Datenbanken

BACKUP_DIR="/MyBackupDir/backup_sql_hourly"
EXPIRETIME=3
DATE=`date "+%Y-%m-%d_%H"`


# Sicherung der mysql-Datenbanken

for i in /var/lib/mysql/*/; do
        dbname=`basename "$i"`;
        mysqldump --user=backup_user -pmy_password  "$dbname" | bzip2 > $BACKUP_DIR/mysql/$dbname.$DATE.bz2
done

find $BACKUP_DIR/mysql -mtime +${EXPIRETIME} -exec rm {} \;
```
Gruß

Günter


----------

