Automatischer FTP Download von meinem Webserver

Status
Für weitere Antworten geschlossen.

Speil

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
14
Punkte für Reaktionen
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
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
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.
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
74
Punkte
88
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
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
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.
 

Speil

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
14
Punkte für Reaktionen
0
Punkte
7
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!
 
Mitglied seit
25. Okt 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
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/
 

Speil

Benutzer
Mitglied seit
03. Jun 2013
Beiträge
14
Punkte für Reaktionen
0
Punkte
7
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
 

derfritz

Benutzer
Mitglied seit
06. Jan 2013
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Das mit dem Timestamp würde mich auch brennend interessieren...hat da noch jemand eine Idee zu?

Danke!
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
74
Punkte
88
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
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
kann die ash der DS auch.
date +%F
liefert
2014-11-20

Gruß Götz
 
Mitglied seit
25. Okt 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
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
 

stefan_lx

Benutzer
Mitglied seit
09. Okt 2009
Beiträge
2.766
Punkte für Reaktionen
74
Punkte
88
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
 
Mitglied seit
25. Okt 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
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