Automatischer FTP Download von meinem Webserver

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Speil

Benutzer
Registriert
03. Juni 2013
Beiträge
14
Reaktionspunkte
0
Punkte
7
Hallo zusammen,

ich möchte gerne den kompletten Ordner "html" auf meinem Webserver regelmäßig auf meine Diskstation (DS212) backupen.

Dazu habe ich über die Systemsteuerung im Aufgaben die Datei ftp_backup.sh eingestellt.

Inhalt der Datei:

Rich (BBCode):
#!/bin/bash

ftp -pvin FTPSERVER << END_SCRIPT
quote USER FTPUSER
quote PASS FTPPASSWORD
cd /html
lcd /volume1/user/Jochen/_backups/alfahosting_backup
mget *
bye
END_SCRIPT

FTPSERVER, FTPUSER und FTPPASSWORD natürlich angepasst ... aber irgendwie will es nicht funktionieren.

Möchte das Backup eigentlich mit so einer Lösung erreichen um nicht extra wget o.ä. installieren zu müssen
 
Hast du bash nachinstalliert? Diese ist auf der DS nicht vorhanden (und nachinstallierrt wäre sie an einem anderen Pfad zu finden).

Möchte das Backup eigentlich mit so einer Lösung erreichen um nicht extra wget o.ä. installieren zu müssen
wget oder curl sind eigentlich für so etwas angesagt. Beides sollte bereits auf der DS vorhanden und muss nicht nachinstalliert werden.
 
wget ist eh schon drauf und die bash braucht man nicht zu installieren.

mein Vorschlag

Rich (BBCode):
#!/bin/bash
cd /volume1/user/Jochen/_backups/alfahosting_backup
wget -b -N --ftp-user=deinuser --ftp-password=deinpasswort ftp://deinserver/Verzeichnis/*
-N: nur neue/geänderte Dateien holen
-b: im Hintergrund ausführen (der Schalter ist anscheinend wichtig, ohne lief das bei mir nicht)

bei wget muss man aufpassen, weil sonst ein Verzeichnis /deinserver/Verzeichnis/... angelegt wird. Bei meiner Lösung passiert das nicht...

Das dann über Systemsteuerung - Aufgabenplaner einrichten, der ausführende Benutzer muss nicht mal Admin sein, somit passen die Berechtigungen für den User Jochen...

Gruß
Stefan
 
stefan_lx
wget ist eh schon drauf und die bash braucht man nicht zu installieren.
mein Vorschlag
Code:
#!/bin/bash
cd /volume1/user/Jochen/_backups/alfahosting_backup
wget -b -N --ftp-user=deinuser --ftp-password=deinpasswort ftp://deinserver/Verzeichnis/*
bash braucht es für wget oder curl tatsächlich nicht. Aber dann sollte man das im Script auch nicht verwenden.:)
Mit wget ist das mit einem Einzeiler gemacht:
Rich (BBCode):
wget -b -N -q --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*
Was die Optionen bedeuten kann man nachlesen, wenn man in der Konsole wget --help eingibt.
 
Rich (BBCode):
wget -b -N -q --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*

thx, habe noch -r -l 10 hinzugefügt um die Unterverzeichnisse auf dem FTP Server mit abzugreifen - jetzt läufts wie ich möchte.

Danke an euch alle!
 
thx, habe noch -r -l 10 hinzugefügt um die Unterverzeichnisse auf dem FTP Server mit abzugreifen - jetzt läufts wie ich möchte.

Moin,
als völliger DAU muss ich mal ganz dumm fragen: angenommen ich nutze diesen Befehl über den Aufgabenplaner um mir regelmäßig
meine Website herunterzuladen. Benötige ich dann die Tiefenbegrenzung von 10 überhaupt?
Ich habe ja nur das Passwort für den FTP meiner eigenen Website eingegeben, wie soll wget da irgendwelchen Links folgen und noch Dateien von fremden Websites runterladen
.... nicht versteh....


und weil ich gerade dabei bin eine 2. Frage.
Kann ich an den Ordnernamen auf der NAS, im obigen Beispiel /volume1/user/Jochen/_backups/alfahosting_backup/
einen Timestamp (ungefähr so: yyyy-mm-dd) anhängen, so das bei jedem Download ein neuer Backupordner erstellt wird ?
Also für heute: /volume1/user/Jochen/_backups/alfahosting_backup-yyy-mm-dd/
 
Hi,
die Tiefenbegrenzung 10 sagt nicht das Script soll externen Links folgen, sondern 10 Stufen in deiner Ordnerstruktur nach unten gehen.

Sprich:
html
-images
--website
--urlaub
-css
-diverses

So hättest du 3 Stufen inkl dem root Verzeichnis.

Weiter kann ich dir leider auch nicht helfen - kenn mich damit 0 aus und hab mir die Befehle nur durch diverse Websiten/Foren zusammen gesucht
 
Das mit dem Timestamp würde mich auch brennend interessieren...hat da noch jemand eine Idee zu?

Danke!
 
in der bash kann man sowas machen:
Rich (BBCode):
#!/bin/bash
datum=`date +%y%m%d`
md /volume1/user/Jochen/_backups/alfahosting_backup-$datum
Den Wert in datum kann man sich noch aufhübschen mit z.B. `date +%y-%m-%d`...

Stefan
 
Hallo,
kann die ash der DS auch.
date +%F
liefert
2014-11-20

Gruß Götz
 
ok, das ist cool. D.h. ich mache aus dem hier

PHP:
wget -b -N -q --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*


das hier?

PHP:
wget -b -N -q date +%F --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*


Zweite Frage, bei einigen Hostern bekomme ich mit wget keine Daten - warum auch immer.
Kann mir jemand einen DAU-fähigen SCP Befehl aus dem obigen wget Befehl machen? Ich würde es gerne damit versuchen, habe aber keine Ahnung
 
passt nicht ganz... ;)
Rich (BBCode):
meine Variante (mit der du auch eine andere Reihenfolge vom Datum bauen könntest):
datum=`date +%y-%m-%d`
wget -b -N -q --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup-$datum/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*
oder von Götz:
Rich (BBCode):
datum=`date +%F`
wget -b -N -q --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup-$datum/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*

Bekommst du eine Fehlermeldung bei den entsprechenden Hostern?

Stefan
 
Nein. Laut Hoster gibt es im Serverlog nur den Eintrag "FTP verbunden. FTP getrennt" - ohne eine Fehlermeldung.
Identischer Befehl wie bei anderen Hostern. Nur bei zweien geht es nicht (einer davon ist 1und1). Kann sich keiner erklären. Darum wollte ich es nun mit SCP versuchen.

meine Variante (mit der du auch eine andere Reihenfolge vom Datum bauen könntest):
datum=`date +%y-%m-%d`
wget -b -N -q --directory-prefix=/volume1/user/Jochen/_backups/alfahosting_backup-$datum/ ftp://deinuser:deinpasswort@deinserver/Verzeichnis/*
Funktioniert. Sehr geil. Danke.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat