Backup Script

  • Hallo zusammen,


    ich habe eines der Webhosting Pakete, bei denen leider die Funktion "Automatische FTP Sicherung" und damit fehlt mir im WCP der Punkt "Backup-Manager".

    Hat oder kennt jemand ein php oder Shell Script, mit dem ich automatisch per Cronjob, alle Dateien / Datenbanken per FTPs sichern kann?


    Vielen Dank :)

    Gruß


    edit: Ich habe es schon per rsync probiert, jedoch scheint der Webspace das nicht zu unterstützen.

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Guten Abend,


    ich habe nun eine Möglichkeit gefunden, den kompletten Ordner per FTP zu spiegeln. Ich habe noch einen kleinen VPS von Netcup auf dem ich nun folgenden Befehl per Cronjob ausführen lasse:

    backup.sh

    Code
    #/bin/sh
    
    /usr/bin/lftp -c "set ftp:list-options -a;
    set ftp:ssl-force true;
    set ssl:verify-certificate no;
    open ftp://Benutzer:PASSWORT@FTP-Server;
    lcd /home/Benutzer/Backup-Ordner;
    mirror --use-cache --verbose --allow-chown --allow-suid --no-umask --parallel=2 --exclude-glob .svn"
    exit;

    Ich hoffe der Befehl ist soweit i.O. ?!



    Jetzt brauche ich nur noch eine Möglichkeit die Datenbanken automatisiert zu sichern.

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Guten Abend,


    ich habe nun eine Möglichkeit gefunden, den kompletten Ordner per FTP zu spiegeln. Ich habe noch einen kleinen VPS von Netcup auf dem ich nun folgenden Befehl per Cronjob ausführen lasse:

    Wenn du eh einen anderen Server hast, warum nutzt du dann nicht einfach rsync auf dem Server?


    Du könntest dir mit einem PHP Script per Cronjob ein Datenbankdump anlegen lassen, der dann einfach mit den normalne Daten weggesichert wird.

  • Wenn du eh einen anderen Server hast, warum nutzt du dann nicht einfach rsync auf dem Server?


    Weil die Webhosting Server kein rsync haben?

    Wie gesagt, hatte es per rsync versucht, hat aber nicht funktioniert.

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Weil die Webhosting Server kein rsync haben?

    Wie gesagt, hatte es per rsync versucht, hat aber nicht funktioniert.

    rsync muss doch nur auf einer Seite laufen, oder stehe ich grade voll auf dem Schlauch?

    Solange du dich auf dem Webhosting per SSH einloggen kannst, müsstest du doch auch vom Server aus per rsync ein Backup machen können?!

  • rsync muss doch nur auf einer Seite laufen, oder stehe ich grade voll auf dem Schlauch?

    Genau das hatte ich auch gedacht.. Aber weil es nicht funktionierte, habe ich ein bisschen rum gesurft und irgendwo habe ich gelesen dass auf beiden Seiten rsync laufen muss.


    Belehrt mich ruhig eines besseren :)

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Genau das hatte ich auch gedacht.. Aber weil es nicht funktionierte, habe ich ein bisschen rum gesurft und irgendwo habe ich gelesen dass auf beiden Seiten rsync laufen muss.


    Belehrt mich ruhig eines besseren :)

    Ich glaube du hast Recht (und ich wieder was gelernt!).

    Ich habe es gerade auf meinem Server probiert und bekomme immer Fehlermeldungen, auf die schnelle konnte ich auch keine Lösung finden. Dann muss rsync wohl doch auf beiden Servern (Quelle und Ziel) installiert sein, bleibt nurnoch FTP.

  • Ich kann meinen vorherigen Post leider nicht mehr editieren:


    Ich hab jetzt auch mal mit --rsync-path rumgespielt, aber ohne Erfolg, es fehlen wohl einfach die nötigen Libraries.


    Was du natürlich machen kannst ist per scp -r einfach alles in einen lokalen Ordner zu kopieren und dann von da aus weiter machen, dauert zwar was länger und verursacht unnötigen (internen) Traffic, aber ist vielleicht schöner als irgendwie per FTP zu tricksen. Wenn das Backup in der Nacht läuft und du nicht 1 Million super kleine Dateien hast spielt die Zeit ja eigentlich keine große Rolle.

  • Im letzten Jahrzehnt hatte ich stabile Backups bei so was immer mit curlftpfs und einem rsync hinbekommen. Der Vorteil war die einfach Integration in das sowie schon vorhandene lokale Backups mit rsync und hardlinks.

    "Security is like an onion - the more you dig in the more you want to cry"

  • ftp ist toll aber richtig üble Sachen kann man machen

    wenn man sich keys für ssh auf dem VPS erstellt :D

    und kommt mit diesem 5-Zeiler aus.

    Wenn das noch als cron läuft, wäre das was du suchst


    Bash
    #!/bin/bash
    cd Webspacebackup
    scp -r -i ~/.ssh/id_rsa sub1234_56@46.38.XXX.XX:httpdocs .
    ssh  -i ~/.ssh/id_rsa sub1234_56@46.38.XXX.XX -t ' mysqldump  -u k12345_database -ppasswd -h 10.35.2XX.XX -P 3306 k12345_db | gzip > db.sql.zip '
    scp -i ~/.ssh/id_rsa sub1234_56@46.38.XXX.XX':db.sql.zip .


    LG

    michi

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • Auch ich kann meinen Beitrag nicht editieren, daher die neue Antwort...


    Ich habe das ganze nun getestet und ein bisschen umgeschrieben:



    Eventuell bekommen wir es auch mit dem Befehl "scp" hin, dass nur veränderte Dateien übertragen werden sollen?

    Hat noch jemand Verbesserungsvorschläge?! :)

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • scp prüft nicht ob die Daten vorhanden sind

    das wäre die Aufgabe von rsync.

    die Frage wäre wie oft sich dein Webcontent

    ändert und wieviel das ist

    Mein Content ist fast statisch alles wird in der db gesichert

    deshalb sichere ich die Webseiten nur selten

    die ssh hat kein timelimit wie ein phpscript also

    kann dein script ruhig etwas länger durchlaufen

    in meinem Fall sind das 1,4 GB in 12 min


    Zitat

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • In dem Fall geht es um eine Nextcloud Installation. Daher wäre es schon gut, wenn die Dateien àlla rsync auf beiden Seiten synchron sind.

    Gibt es sonst eine andere Lösung?


    Alternativ müsste ich sonst die Backup Ordner mit einem Datum versehen und immer die ältesten Ordner löschen lassen. Nur damit wird ja immer alles komplett neu übertragen.

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Ich habe das ganze nun nochmal verändert. Übersichtshalber, habe ich nun 2 getrennte Cronjobs erstellt.


    Dateien-Backup.sh


    und Datenbank-Backup.sh



    Viel mehr macht der Backup-Manager von Plesk ja auch nicht?! :)

    Die Emails werden per imapsync gesichert.

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • NACHTRAG!

    Ein Backup ist nur gut wenn es intakt ist und man die Daten auch zurückspielen kann.

    Angeregt durch dieses Thread war mein Schnellschuss leider falsch, eigentlich sichere ich mein Daten anders.

    Man sollte auf jeden Fall seinen eigenen Kram testen bevor man seinen Mund aufmacht Getestet habe ich erst

    jetzt und hier kommt die Berichtigung. :D

    Code
    ssh  -i ~/.ssh/id_rsa sub1234_56@46.38.XXX.XX -t ' mysqldump  -u k12345_database -ppasswd -h 10.35.2XX.XX -P 3306 k12345_db | gzip > db.sql.zip '

    Die Pipe und/oder das anschließende Zippen zerstört das DB-Backup und es lässt sich nicht benutzen.

    Aus diesem Grund muss das Kommando folgender Maßen aussehen:

    Code
    ssh  -i ~/.ssh/id_rsa sub1234_56@46.38.XXX.XX -t ' mysqldump  -u k12345_database -ppasswd -h 10.35.2XX.XX -P 3306 k12345_db --result-file=dbdata.sql && gzip dbdata.sql '
    scp -i ~/.ssh/id_rsa sub1234_56@46.38.XXX.XX':db.sql.gz .

    Achtung: Da sich die Endung der gepackten Datei ändert (von .zip in .gz) muss auch der download angepasst werden.


    LG

    michi

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE