V-Server-Backup

Fireball22

Registered User
Hallo,
ich würde gerne von allen meinen Vhosts ein Backup machen, falls mal was verloren geht und dieses dann sofort downloaden.
Das einzige Problem wäre, wenn 80% von meiner 10 GB HDD in dem V-Server verbraucht sind, dann könnte ich nämlich die Daten nicht mehr zippen und in einen Online-Ordner zum Downloaden schieben.

Gibt es da vielleicht irgendeine Möglichkeit/ein Programm, dass es möglich macht, realtime das Backup herunterzuladen, d.h. er zippt immer nur gerade das, dass heruntergeladen wird und so benötige ich evtl. nur einen Speicherpuffer von evtl. 2 MB.

Ist sowas möglich?

Und wie ist es möglich, dass ich von allen Kunden auf meinem Server ein MySQL-Backup von allen Datenbanken aufeinmal mache?

Fireball22
 
Du setzt dir zu Hause ein Linux Rechner auf (kann minimale Ausstattung sein, hauptsache er kommt ins Internet :))
auf dem Rechner lässt ein SSH-Server laufen und lässt von deinem VServer aus die Daten via rsync komprimiert und verschlüsselt auf dein Linux Rechner übertragen.

Vorteil des ganzen, er überträgt nur das was geändert wurde und wenn du das möchtest löscht er auch das aus dem Backup was auf dem Server nicht mehr vorhanden ist.

So mach ich jedenfalls das Backups meines gesamten vServers :)
 
Das ist ja ne super Idee!
Woher bekomme ich denn die ganzen Befehle für dieses rsync?

Und wie mach ich das mit dem MySQL-Backup?

Fireball22
 
Wenn rsync installiert ist
Code:
rsync --help
da steht alles drin :)

Wenn ich mal paar Minuten Zeit hab schreib ich ein Tutorial.

MySQL kannst entweder zuvor ein SQL-Dump erzeugen und dann mit ins Backup aufnehmen oder du sicherst die binären MySQL Datein (meistens /var/lib/mysql/)
 
Vielen Dank, werde da gleich mal nachschauen, ob das drauf ist ;)

Genau des isses, wie mach ich ein MySQL-Dump von allen Datenbanken auf dem Server?
Bis jetzt habe ich nur ein Tool gefunden, dass von der Datenbank von mir selber ein Backup macht, aber das könnte ich genausogut mit PhpMyAdmin machen.

Fireball22
 
So, hab das gerade mal durchgelesen, das ist genau das richtige für mich, nur wie kann man da festlegen, welches Verzeichniss er sichern soll und was muss ich bei mir Lokal auf meinem Rechner für nen Befehl eingeben.

Hier mal ein Ausschnitt:

Code:
Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  or   rsync [OPTION]... [USER@]HOST:SRC DEST
  or   rsync [OPTION]... SRC [SRC]... DEST
  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]
  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
SRC on single-colon remote HOST will be expanded by remote shell
SRC on server remote HOST may contain shell wildcards or multiple
  sources separated by space as long as they have same top-level

Also irgendwie versteh ich den Aufbau auch nicht so ganz :D
Wie wäre es denn jetzt mit der Beispiel-URL gmx.de und dem Benutzer root?

Fireball22
 
Fireball22 said:
wie mach ich ein MySQL-Dump von allen Datenbanken auf dem Server?
Auf der Console mit:
Code:
mysqldump -u {Benutzer} p {Passwort} --all-databases > mysqldump.sql ; gzip mysqldump.sql

{Benutzer} und {Passwort} sind durch die für Dich gültigen Einträge zu ersetzen.

Gruß flyingoffice
 
Vielen Dank, dass ist ja ein super Tipp!

Nur bekomme ich immer nur die Datei mit folgendem Inhalt:

Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

An was könnte das liegen?
Syntax falsch?

Fireball22
 
Allgemein:
Code:
rsync -e ssh -azuv --delete --partial --numeric-ids {localpath} {remotehost}:{remotepath}

Beipspiel:
Code:
rsync -e ssh -azuv --delete --partial --numeric-ids /srv/www 123.123.123.001:/backup/vserver
das würde den Inhalt vom Verzeichnis "/srv/www" auf deinem vServer zu deinem eigenen Linux Rechner mit der IP 123.123.123.001 in das Verzeichnis /backup/vserver übertragen.
Die Übertragung erfolgt mittels SSH, beim Aufruf dieses Befehls würde er sich also bei deinem Linux Rechner via SSH einloggen, nutzt die keine Keys fragt er nach dem Passwort.

Bleibt noch zu erwähnen das mit diesem Befehl die Datei/Verzeichnis Eigentümer und Rechte mit übernommen werden.
 
Fireball22 said:
Nur bekomme ich immer nur die Datei mit folgendem Inhalt:
Ups, sorry, Tipfehler: vor dem "p" gehört noch ein Minus "-p"

Gruß flyingoffice
 
Code:
mysqldump --all-databases --password=dein-Passwort-hier-her > mysqldump.sql

als Root ausführen, und das MySQL-Root-Passwort da rein setzen, dann funktioniert das auch.

Alternativ kann man es auch als normaler User ausführen, dann musst du dem in diesem Befehl aber noch sagen das er sich als Root einloggen soll.

Edit:
flyingoffice war schneller :P
 
Vielen Dank für eure Hilfe, aber keine Chanche!

Geht immer noch nicht, gleicher Fehler kommt beim download immer noch.

Fireball22
 
Also, meine Synchronisation sieht jetzt so aus:

Code:
#!/bin/bash
#Dieses Script stellt automatisch eine Verbindung zu meinem Server her und sichert alle geänderte Daten
rsync -e -z ssh -azuv --existing --partial --numeric-ids /etc/www/vhosts/michis-homepage.net/tmp/ 81.169.135.249:/backup-vserver/

D.h. er müsste jetzt alle Dateien aus dem tmp Ordner in den /backup-vserver Ordner hauen, oder?
Aber nur die Dateien, die verändert wurden(--existing).
Und das ganze wird dann noch gepackt (-z).

Ist das alles so richitg?
Nicht das irgendwelche Daten auf meinem Server verschwinden :D

Fireball22
 
Und wenn ich es so mache, wie du, StickyBit geschrieben hast, dann kommt folgende Fehlermeldung:

Code:
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect

Fireball22
 
Kann eigentlich nur das Kennwort falsch sein oder die Berechtigung falsch gesetzt. Hat root wirklich Zugriff auf die DB? :D Klingt blöd, aber man weiss ja
net, evtl. mal was gelöscht bei den Usern in Deiner DB-Config?
 
Wie kann man denn die Berechtitung anderst setzen?
Und benötigt man da das Passwort für die Datenbank(wobei das eigentlich sinnlos wäre) oder das Root-Passwort(mit dem habe ich es immer versucht) oder muss man da ein eigenes Passwort festlegen(habe ich in der config gesehen...) ?!

Fireball22
 
Hallo!
Benutzer root für das System und Benutzer root für mySQL sind zwei paar Schuhe! Du solltest beide Kennworte mitgeteilt bekommen haben. Eventuell heisst root für mySQL auch gar nicht root - bei Plesk Sytemen hört er auf den Namen admin.

Wenn (mySQL) root kein Kennwort hat, sollte der Befehl mysql auf der Konsole ohne Fehlermeldung ausgeführt werden können. Natürlich nur, wenn man als (System) Benutzer root angemeldet ist.

mfG
Thorsten
 
Vielen Dank für den Tipp mit mysql!

Is bei mir der Benutzer admin mit einem anderen Passwort, genau mit dem Passwort, wie ich mich in Plesk einlogge, sowas komisches ;)

Wie kann ich dann eigentlich die ganzen Datenbanken auf dem kompletten Server wieder für alle Kunden inkl. mir selber wiederherstellen?

Fireball22
 
Indem du den MySQL Dump wieder importierst. Entweder mit PhpMyAdmin oder mittels mysql auf der Konsole.
 
Stimmt, könnte ich mit PHP-MyAdmin machen, das Problem ist nur, ich hab kein Admin-Acount und Php-MyAdmin.

Hab leider nix in der help gefunden, wie geht das impotieren?

Fireball22
 
Back
Top