Backup meiner Webseite auf den QNAP TS-409PRO

  • Bei Hetzner habe ich eine Webseite. Ein Backup davon würde ich gerne täglich auf den QNAP TS-409Pro sichern. Wie stelle ich das am Besten an, ohne einen Cron Job auf dem Webspace zu erstellen?

  • Das wäre, wenn du ein Script (zB.: backup_hp.sh ) erstellst, in dem folgendes steht:


    Code
    wget -c --ftp-user=ftpusername --ftp-password=ftppassword -x -r -m ftp://yourdomain


    Dieses Script legst du in dem Ordner ab, wo das Backup von der Homepage abgelegt werden soll und fügst es in den Crontab von deinem Ts-409 ein.


    Mit "wget --help" bekommst alle möglichen Parameter des Befehls.

  • Zunächst vielen Dank für deine schnelle Antwort.


    Allerdings werden mit wget auch alle (externen) Links runtergeladen oder liege ich da falsch? Ich möchte ein Backup der kompletten Webseite, sodass ich sie im Notfall wieder hochladen kann. Auf der Suche nach einer Lösung bin ich auf den Befehl Rsync gestoßen. Wäre Rsync nicht besser geeignet um die Webseite zu sichern?

  • meines Wissens muß Rsync auf beiden Server installiert sein oder in das lokale Dateisystem mit NFS, smbfs/cifs oder ähnliches eingebunden sein.
    Beides kann man so konfigurieren, das wirklich nur die gänderten Dateien übertragen werden.


    Zitat

    Allerdings werden mit wget auch alle (externen) Links runtergeladen oder liege ich da falsch?


    Wenn du mit wget über das http-Protokoll Websites herunterlädst, ja,
    aber in meinem Beispiel, wie ich es auch bei einer Clan-HP mache, ist es nicht der Fall.
    Dort werden nur die reinen Dateien ungeachtet des Inhaltes heruntergeladen.

  • Hallo Eraeser,


    die Idee mit den auto Backups find ich richtig gut. In meinem Fall würde ich gern die dump von qnapclub.de Forum absichern. Dann müsste ich die nicht ständig manuell laden.
    Aber irgendwo hakt es noch. Ich schreib mal was ich bisher getan hab.


    1. crontab um folgendes erweitert

    Code
    0 11 * * * /share/HDA_DATA/Qweb/bak/backup_hp.sh


    2. im Qweb den Ordner bak angelegt und die backup_hp.sh Datei hinterlegt

    Code
    wget -c --ftp-user=Benutzer --ftp-password=Passwort -x -r -m ftp://qnapclub.de/test/


    3. im Qweb nach 11:00 Uhr nachgesehen ob das Bild welches in .../test/ liegt auch gespeichert wurde.

    Code
    [/share/HDA_DATA/Qweb] # wget -c --ftp-user=Benutzername --ftp-password=Passwort -x -r -m ftp://qnapclub.de/test
    --11:12:40--  ftp://qnapclub.de/test
               => `qnapclub.de/.listing'
    Resolving qnapclub.de... failed: Name or service not known.
    
    
    FINISHED --11:13:01--
    Downloaded: 0 bytes in 0 files


    4. FTP Port wird auf dem Router zum NAS umgeleitet


    Vielleicht ist mir auch ein Fehler unterlaufen und du kannst mir dabei behilflich sein.

  • Zitat

    Resolving qnapclub.de... failed: Name or service not known.


    Hast du über qnapclub.de auch Zugriff mit dem FTP-Programm ?
    Kannst du die Adresse anpingen ?


    ich habe es auch mal über den cronjob versucht und festgestellt, das es die Daten in das Home-Directory vom Root schreibt.
    In dem Fall müßte noch ein parameter hinzu bzw. mit cd in das Verzeichnis gewechselt werden.


    EDIT:

    Code
    cd /share/HDA_DATA/Qweb/bak
    wget -c --ftp-user=Benutzer --ftp-password=Passwort -x -r -m ftp://qnapclub.de/test/ --append-output=./backup.log


    mit einer zusätzlichen Log-Datei.

  • Ja, FTP Zugriff habe ich.


    qnapclub.de anpingen nein aber die direkte IP ja und dann geht es auch!


    Code
    [/share/HDA_DATA/Qweb] # wget -c --ftp-user=Benutzername --ftp-password=Passwort -x -r -m ftp://85.13.136.161/test/--11:49:49--  ftp://85.13.136.161/test/           => `85.13.136.161/test/.listing'Connecting to 85.13.136.161:21... connected.Logging in as Benutzername ... Logged in!==> SYST ... done.    ==> PWD ... done.==> TYPE I ... done.  ==> CWD /test ... done.==> PASV ... done.    ==> LIST ... done.    [ <=>                                                                                                              ] 185           --.--K/s11:49:49 (216.36 KB/s) - `85.13.136.161/test/.listing' saved [185]--11:49:49--  ftp://85.13.136.161/test/samsung.JPG           => `85.13.136.161/test/samsung.JPG'==> CWD /test ... done.==> PASV ... done.    ==> RETR samsung.JPG ... done.Length: 48,715 (48K)100%[=================================================================================================================>] 48,715       312.98K/s11:49:49 (311.08 KB/s) - `85.13.136.161/test/samsung.JPG' saved [48715]FINISHED --11:49:49--Downloaded: 48,900 bytes in 2 files


    Es wird aber in /Qweb eine Ordner 85.13.126.161 erstellt ...! Soweit so gut, nun wäre es ja Sinnvoll nicht jedesmal alles herunter zu laden, sondern die dumps local immer nur zu erneuern!
    Wo würde ich nun folgendes einfügen, um nicht immer alles herunter zu laden?

    Code
    -N,  --timestamping



    mfg
    christian

  • Ja, der Parameter -m beinhaltet das timestamping.


    Code
    -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.
    
    
      -r,  --recursive          specify recursive download.
      -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).
      -N,  --timestamping            don't re-retrieve files unless newer than
                                     local.


    Ich kann beide Adressen (ftp.qnapclub.de und qnapclub.de) anpingen.

  • anpingen geht hier nicht ... auch egal!


    Was ich nun heraus gefunden habe ist das

    Code
    wget -c --ftp-user=Benutzername --ftp-password=Passwort -x -r -m ftp://85.13.136.161/test/


    via ssh funktioniert es (aber eben nur manuel), doch der Aufruf der backup_hp.sh Datei mit diesem Inhalt wird einfach nicht ausgeführt!



    die backup_hp.sh befindet sich in

    Code
    /share/HDA_DATA/Qweb/bak/


    in der crontab habe ich dieses hinzugefügt

    Code
    35 12 * * * /share/HDA_DATA/Qweb/bak/backup_hp.sh


    Kann es sein das die backup_hp.sh Datei an einem Ort gespeichert werden muss?

  • Für den cronjob müßtest du in dem Script noch ein cd einfügen,
    womit du in das Verzeichnis wechselst, in dem das Backup abgelegt werden soll,
    ansonsten landet es unter /root.


    Code
    cd /share/HDA_DATA/Qweb/bak
    wget -c --ftp-user=Benutzername --ftp-password=Passwort -x -r -m ftp://85.13.136.161/test/


    Sonst ist die Ram-Disk ( / ) schnell voll.


    Wo die Script-Datei abgelegt ist, spielt dabei keine Rolle.

  • Zitat von "Eraser-EMC2-"

    Sonst ist die Ram-Disk ( / ) schnell voll.


    Da liegt zum Glück nichts, warum auch immer!


    Werde jetzt cd / .... testen. Danke erstmal!

  • Mittlerweile bin ein Stückchen weiter gekommen.


    Manuell klappt es jetzt mit dem Vorschlag von Eraser-EMC2. Dafür schon mal ein "Dickes Dankeschön"!


    Code
    wget -c --ftp-user=ftpusername --ftp-password=ftppassword -x -r -m ftp://yourdomain


    Allerdings musste ich dazu vorher in das Verzeichnis:


    Code
    cd /share/Qdownload

    (ohne HDA_DATA) wechseln. Liegt das am TS_409Pro?


    Dort ist jetzt das Verzeichnis "yourdomain" erstellt worden. Der lädt jetzt schon eine Stunde (DSL 16000) runter...und lädt und lädt. Mal sehen wie es dann mit dem cronjob und den Aktualisierungen funktioniert.


    Ich melde mich wieder. ;)

  • Ich bin über manuel nicht hinaus gekommen :? !


    Edit:
    auf meinem TS-209 ist nur eine HDD installiert daher nur

    Code
    /share/HDA_DATA/....


    auf meinem TS-409 sind es 4 HDD´s ( Raid 5 ) und hier liegt alles in

    Code
    /share/MD0_DATA/...
  • Habe beides ausprobiert...also HDA_DATA und MDO_DATA. Ich habe zwei Festplatten...RAID1.


    Bei mir befinden sich die Verzeichnisse Qweb, Qusb...etc. alle im Verzeichnis /share. Seltsam. Hauptsache es geht.

  • /share/Qweb ist ein Link auf /share/HDA_DATA/Qweb bzw. /share/MD0_DATA/Qweb, jenachdem wie die Platten eingerichtet sind.


    In dem Script, das vom Cronjob aufgerufen wird, ist auch der cd Befehl mit dem entsprechenden Verzeichnis eingetragen ?


    Du könntest beim wget auch eine Log-Datei erstellen lassen, um nachher zusehen, was passiert ist.
    Wenn wget läuft und die Log-Datei geschrieben wird, kannst du parallel auch die Log-Datei mit anzeigen lassen.
    Dazu gibt es den Befehl tail, zb. das Anzeigen des Apache-Logs:

    Code
    tail -f /usr/local/apache/logs/apache_access_log


    Der befehl kann mit Strg+C abgebrochen werden.



    EDIT-1:
    Bei einem Forum ist es eigentlich wichtiger, das die Datenbank regelmäßig gesichert wird.

  • Zitat von "Eraser-EMC2-"

    EDIT-1:
    Bei einem Forum ist es eigentlich wichtiger, das die Datenbank regelmäßig gesichert wird.


    Wenn das an mich ging, das weiss ich. Im Moment halt immer manuel, dennoch gefällt mir die hier beschriebene Funktion besser.

  • Zitat von "Eraser-EMC2-"


    Bei einem Forum ist es eigentlich wichtiger, das die Datenbank regelmäßig gesichert wird.


    Da wird natürlich nachts ein Backup erstellt, das dann auch automatisch heruntergeladen wird. Der Qnap soll eine zusätzliche Sicherung liefern.


    btw. Download ist fertig. Nochmal wget gestartet. Lädt der jetzt alles nochmal runter oder checkt der nur ob es neue Dateien gibt? Parameter sind -x -r -m

  • Zitat


    btw. Download ist fertig. Nochmal wget gestartet. Lädt der jetzt alles nochmal runter oder checkt der nur ob es neue Dateien gibt?


    Es werden nur neue Daten heruntergeladen, dazu wird die Liste aller Ordnerinhalte heruntergeladen und verglichen.
    Wonach es feststellt, was geändert wurde, kann ich nicht sagen.

  • Beim durchstöbern der Parameter vom wget, ist mir noch eine Option aufgefallen:


    Code
    --directory-prefix=


    Damit gibt man an, wo die Daten gesichert werden sollen. Dadurch entfällt der cd-Befehl im Script.


    Code
    wget -c --ftp-user=ftpusername --ftp-password=ftppassword -x -r -m ftp://yourdomain --append-output=./backup.log --directory-prefix=/share/Qweb/bak/
  • oje :(


    bisher noch kein Erfolg ... habe nur die Verzeichnisse etwas geändert !



    klappt nicht

    Code
    /usr/bin/wget -c --ftp-user=USER --ftp-password=PASSWORT -x -r -m ftp://85.13.136.161/test/ --append-output=./backup.log --directory-prefix=/share/HDA_Data/bak/


    klappt nicht

    Code
    wget -c --ftp-user=USER --ftp-password=PASSWORT -x -r -m ftp://85.13.136.161/test/ --append-output=./backup.log --directory-prefix=/share/HDA_Data/bak/


    klappt nicht

    Code
    wget -c --ftp-user=USER --ftp-password=PASSWORT -x -r -m ftp://85.13.136.161/test/ --append-output=./backup.log --directory-prefix=/share/bak/


    Wie schon gesagt, in Putty alles kein Problem und in /bak/ wird ein Verzeichnis angelegt /bak/85.13.136.161/test/.... aber leider nur manuel!



    argh :)