Webspace Backups

Diskutiere das Thema Webspace Backups im Forum Web-Programmierung.

  1. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    Hallo,

    Nach einem Providerwechsel musste ich leider feststellen, dass die Herrschaften keine Backup-Funktion anbieten.

    Mysql Backups sollten mit mysqldumper kein Problem sein

    Wie aber kann ich Webspace Backups erstellen?

    Vielen Dank!
     
  2. Multe

    Multe Mitglied

    Beiträge:
    381
    Zustimmungen:
    8
    Mitglied seit:
    07.06.2005
    Wenn Du Shellzugriff hast mach nen TAR-Ball draus und zippe es mit gzip. Das kannst Du Dir dann runterladen.
    Wenn nicht würde ich versuchen es mit SCP üer Terminal zu bekommen. Zur Not eben per FTP als allerletzter Versuch.

    Gruß Malte
     
  3. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    vielen Dank für deine Antwort

    was ist ein Shellzugriff?
    bzw wie geht das mit dem TAR-Ball?
     
  4. Multe

    Multe Mitglied

    Beiträge:
    381
    Zustimmungen:
    8
    Mitglied seit:
    07.06.2005
    Hmm,
    normalerweise kann man seine Daten per FTP hochladen. Shellzugriff bedeutet quasi Terminal.app für den Remotezugriff.
    Der Befehl lautet "ssh" was Secure Shell bedeutet. Such mal im Netz danach. Einen TAR-Ball bilden heisst mit dem Befehl "tar" Dateien zusammenpacken und mit dem Befehl "gzip" komprimieren. Auch alles im Netz zufinden.
    Gruß Malte
     
  5. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    nur um das nochmal zu erwähnen,

    ich möchte Backups von meinem Webspace auf meiner Festplatte machen!

    deine Variante hört sich irgendwie umgekehrt an
     
  6. Multe

    Multe Mitglied

    Beiträge:
    381
    Zustimmungen:
    8
    Mitglied seit:
    07.06.2005
    Nein das hab ich schon richtig verstanden.
    Deswegen eine Shell auf Deinem Webspace. Wenn Du einen Shellzugriff auf Deinen Webspace hast, dann kannst Du dort alles zusammenpacken und zippen und diese Datei dann runterladen und hast den ganzen Kram auf Deiner Platte.
    Wenn das nicht geht versuche es mit SFTP oder FTP. Der Aufwand ist dann aber etwas größer.

    Gruß Malte
     
  7. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    kann man das auch automatisieren, so dass das jeden Tag automatisch gemacht wird?
    MacBook ist auch den ganzen Tag an

    Shell Zugriff habe ich, aber begrenzt
    welchen Client würdest du empfehlen?
     
  8. dms

    dms

    Klar, das könnte man automatisieren. Wenn Du Shell-Zugriff hast kannst Du Dir das mit dem MySQL-Dumper auch sparen und vor dem zippen (tarball) per mysqldump alle Daten in ein SQL-File schreiben und ebenfalls ins Backup legen. Dann hast Du alles beisammen und nicht verstreut.
     
  9. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    kannst du mir genauer erklären, wie ich das mache?

    hab mit Shell-Zugriff und so noch keine Erfahrung
     
  10. dms

    dms

    Ich umreisse es mal grob:

    Unter Dienstprogramme findest Du Terminal.app. Wenn Du das Programm startest erhältst Du eine Eingabeaufforderung. Per SSH kannst Du Dich zu Deinem Server folgendermassen verbinden:
    Code:
    ssh -l DEIN-NUTZER-NAME deine-domain.de
    Hinter dem ersten - das ist ein kleines L, keine 1. :) Der Nutzername den Dir Dein ISP zugewiesen hat musst Du dahinter eintragen und natürlich den Domain-Namen bzw. die IP des Servers mit dem Du Dich verbinden willst.
    Hier stellt sich nun auch erstmal heraus ob Dir Dein ISP zugriff per SSH erlaubt oder nicht.
    Führst Du den Befehl aus wirst Du noch nach Deinem Passwort gefragt.
    Versuch das erst mal soweit. Muss hier nebenbei noch selbst etwas arbeiten. ;)
     
  11. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    ok das kam:
    HTML:
    
    
    The authenticity of host 'xxx.com (xxx.xx.xx.xx.xx)' can't be established.
    RSA key fingerprint is xx:01:ab:xxx.uswusf.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'xxx.com,xx.xx.xx.xx' (RSA) to the list of known hosts.
    Password: 
    -bash-3.1$
    bei meinem Hoster steht noch das im Panel:

    Wenn Sie sich mit Linux auskennen und direkt auf die Shell Ihres Webservers zugreifen möchten, benötigen Sie einen Client für den verschlüsselten Shell Zugang - einen sicheren Secure-Shell-Client (SSH).

    Der unverschlüsselte Telnet-Zugang ist auf unseren Systemen aus Sicherheitsgründen NICHT möglich.
     
  12. dms

    dms

    Das sieht schon mal gut aus. Die bedrohliche Meldung ist OK und normal bei der ersten Verbindung. Wird bzw. darf nicht noch mal kommen.
    Als nächstes versuch mal ein Backup von Deiner Datenbank zu ziehen:
    Code:
    mysqldump --user=MYSQL-NUTZERNAME --password=MYSQL-PASSWORT --opt --add-drop-table --complete-insert --compress --extended-insert --no-create-db  DATENBANKNAME > DATEI.sql
    Die grossgeschriebenen Wörter musst Du natürlich wieder ersetzen. Anstelle von DATENBANKNAME kannst Du auch "--all-databases" einsetzen, dann werden alle Datenbanken gesichert.
    Bei DATEI notierst Du den Dateinamen in dem die Sicherung gespeichert werden soll. Hier kannst Du auch einen Pfad angeben. Du solltest die Datei auf keinen Fall im Document-Root des Webservers ablegen, sonst kann theoretisch jeder die Datei herunterladen. Am besten speicherst Du die Datei in Deinem Home-Verzeichis. "~/DATEI.sql".

    Dann sehen wir weiter. :)
     
  13. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    also ich hab das gemacht

    geb den befehl ein,a ber da passiert nix
     
  14. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    ah mein fehler, die sql datei befindet sich auf dem webspace

    und jetzt?
     
  15. dms

    dms

    Sehr gut. Läuft ja wie geschmiert. Jetzt wird das Päckchen geschnürt. Wir speichern den Inhalt Deines Document-Root in einem Tarball
    Code:
    tar -cvf ~/backup.tar /pfad/zu/deinem/document_root/*
    Das erstellt die Datei backup.tar in Deinem Home-Ordner. Da fehlt natürlich noch das MySQL-Backup von eben. Das fügen wir noch manuell hinzu:
    Code:
    tar -f ~/backup.tar -r ~/DATEI.sql
    Und da wir etwas Platz sparen wollen komprimieren wir die Datei noch:
    Code:
    gzip ~/backup.tar
    Pfade/Dateinamen müssen hier wieder angepasst werden. Nun solltest Du eine Datei namens backup.tar.gz in Deinem Home-Ordner haben.

    Wie man die Datei nun am günstigsten runterlädt weiss ich auch nicht. Vlt. kann man das irgendwie dirket per SSH machen. Da kenne ich aber keine Möglichkeit. Vlt. kann dazu jemand anderes noch was ergänzen. :)

    Vorerst würde ich Datei per FTP runterladen. Das können wir auch direkt im Terminal machen:
    Wir schliessen die SSH-Session...
    Code:
    exit
    ...und verbinden uns per FTP mit dem Server
    Code:
    ftp DEIN-NUTZERNAME@DEINE-DOMAIN.com
    Du wirst wieder nach Deinem Passwort gefragt.

    Jetzt laden wir die Datei herunter:
    Code:
    cd ~
    get backup.tar.gz
    Zu guter letzt löschen wir noch die Dateien online. Die nehmen ja nur Platz weg:
    Code:
    delete backup.tar.gz
    delete DATEI.sql
    Das sollte es gewesen sein. :)

    Zum automatisieren: Erst mal müsste man die ganzen Befehle in einem Script sammeln. AppleScript wäre da sicher ideal. Damit kenne ich mich aber nicht wirklich aus. :) Ich schau mal ob ich da auf die Schnelle was hinbekomme. Wäre immerhin auch interessant für mich. :)
     
  16. Multe

    Multe Mitglied

    Beiträge:
    381
    Zustimmungen:
    8
    Mitglied seit:
    07.06.2005
    Hallo,

    so jetzt hast Du die Datei irgendwo auf Deinem Webspace liegen.
    Geh in das Hauptverzeichnis, also das in dem Du landest, wenn Du sich per ssh anmeldest.
    Dann gibt als Befehl ein:
    Code:
    tar -cpzf BACKUP_DATUMSANGABE.tar.gz *
    
    Damit wird eine Datei erstellt mit dem Namen "BACKUP_DATUMSANGABE.tar.gz". In diese Datei wird alles reingepackt was in diesem Verzeichnis liegt. Da es Dein Hauptverzeichnis ist, alle Dateien und Verzeichnisse und deren Inhalt (auch mehrere Unterverzeichnisse).
    Die Parameter -cpzf bedeuten:
    Code:
    -c  = create
    -p  = preserve-permissions (gleiche Besitzer und Rechteinformationen)
    -z  = Inhalt mit gzip komprimieren
    -f  = File; also welches File, in Deinem Fall alles = *
    
    Dann rödelt der Server, je nach Menge und Größe der Daten, einige Zeit rum und packt alles ein.
    Wenn der Prozess fertig ist, dann findest Du im gleichen Verzeichnis die Backupdatei.
    Wichtig:
    Wenn das Verzeichnis im Web zugänglich ist, dann kann JEDER diese Datei runterladen wenn er weiss wie sie heisst.
    Also lade sie runter und lösche sie nachdem Du den Inhalt auf Deinem lokalen Rechner geprüft hast.
    Die Datei findest Du unter Deiner Webadresse, wenn das Verzeichnis in dem sie liegt dort verfügbar ist. Wenn nicht musst Du das per FTP erledigen.
    Das ist nur eine grobe Erklärung, alle Erklärungen findest Du detailiert mit
    Code:
    man mysqldump
    man tar
    
    oder im Netz.
    Beschäftige Dich damit und lese nach wie das geht. Wenn Du einen Fehler machst, kannst Du Dir alles zerschiessen, wenn es dumm läuft. Ich möchte dafür keine Garantie geben, weitergehende Tipps musst Du Dir erarbeiten.
    Such nach Skripten für Linux, die Backups erstellen. Den tar Befehl nutze ich auf meinem Server, aber wenn Du das automatisiert haben willst solltest Du dich mit Shellprogrammierung, zumindest den Basics, auseinander setzen.
    Viel Erfolg
    Gruß Malte
     
  17. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    ok vielen dank ihr beide

    werd das morgen dann ausprobieren

    eine automatisierung wäre echt noch der megahit ;)
     
  18. dms

    dms

    Hab das gerade mal mit AppleScript versucht. Nach anfänglichen Schwierigkeiten denke ich jetzt dass es machbar sein müsst. Habe aber jetzt erst mal keine Zeit mich damit zu befassen. Vlt. die Woche noch...
     
  19. veganxpussy

    veganxpussy Thread Starter Mitglied

    Beiträge:
    188
    Zustimmungen:
    0
    Mitglied seit:
    25.06.2007
    ok super

    nur keinen stress ;)
     
  20. dms

    dms

    Beim Fersehen ist mir gerade noch eine andere Idee gekommen und hier ist eine funktionierende Lösung. :)
    Code:
    #!/usr/bin/expect -f
    
    set SSH_SERVER "xxx"
    set SSH_USER "xxx"
    set SSH_PASSWORD "xxx"
    
    set MYSQL_SERVER "localhost"
    set MYSQL_USER "xxx"
    set MYSQL_PASSWORD "xxx"
    
    set FTP_SERVER "xxx"
    set FTP_USER "xxx"
    set FTP_PASSWORD "xxx"
    
    set DOCUMENT_ROOT "/home/dms/www/"
    
    set timeout -1
    
    #login per SSH
    spawn ssh $SSH_USER@$SSH_SERVER
    expect "password:"
    send "$SSH_PASSWORD\r"
    expect "Last login"
    send "mysqldump --host=$MYSQL_SERVER --user=$MYSQL_USER --password=$MYSQL_PASSWORD --opt --add-drop-table --complete-insert --compress --extended-insert --no-create-db --all-databases > ~/backup.sql && tar -cf ~/backup.tar $DOCUMENT_ROOT* && tar -f ~/backup.tar -r ~/backup.sql && gzip ~/backup.tar && echo \"READY\"\r"
    expect "READY"
    send "exit\r"
    expect "closed"
    
    #login per sftp
    spawn sftp $FTP_USER@$FTP_SERVER
    expect "password:"
    send "$FTP_PASSWORD\r"
    expect "sftp>"
    send "get backup.tar.gz\r"
    expect "sftp>"
    send "rm backup.sql\r"
    expect "sftp>"
    send "rm backup.tar.gz\r"
    expect "sftp>"
    send "exit\r"
    exit
    Das ganze als "backup.exp" abspeichern und im Terminal per
    Code:
    expect backup.exp
    aufrufen.
    Die Zugangsdaten für SSH, FTP und MySQL habe ich in getrennten Variablen untergebracht. Ist bei vielen Hostern ja nicht identisch.

    In dem kleinen Script fange ich keine Fehler ab. Habe das einfach nur schnell hingewuselt so dass es für meinen eigenen Server funktioniert. Möglicherweise müssen die expect-Kommandos bei Dir angepasst werden. Zudem habe ich das ganze von FTP auf SFTP umgestellt.

    Automatisieren kannst Du das ganze nun z.B. per Lingon
     
Die Seite wird geladen...
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...