FTP Upload- File von der NAS auf einen im Web liegenden Server im Hintergrund laden

Status
Für weitere Antworten geschlossen.

sjoerd

Benutzer
Mitglied seit
08. Feb 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hallo Gemeinde,

ich bin leicht irritiert, denn entweder sehe ich den Wald vor lauter Bäumen nicht oder die 212j kann diese Funktion nicht.
Was mich schon sehr wundern würde denn selbst meine "Aldi-NAS" kann das.

Ich möchte das die 212j ein File oder einen Ordner auf meinen Web-Server hoch lädt ohne das ich großartig dafür etwas machen muss außer das File/Ordner in einen dafür vorgesehenen Ordner auf der NAS abzulegen.

Das ich im Vorfeld entsprechende Zugangsdaten irgendwo eingeben müsste ist mir klar aber wo, das ist hier die Frage.

sjoerd
 

TheGardner

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
1.844
Punkte für Reaktionen
54
Punkte
74
Hmm, also eigentlich kannst Du das in der crontab mit folgenden Befehl hinterlegen:

lftp -u USERNAME,PASSWORT -p 21 SERVERNAME/VERZEICHNIS

Aber das wäre nur eine automatische Anmeldung mittels FTP Protokoll. Die Befehle für das Hochladen müssten in einer Extradatei abgelegt werden. Im Ganzen würde das so aussehen, dass die Crontab ne Zeile mit Zeit(en) und Ausführung einer Datei (ich nenne sie mal hochladen.sh) bekommt. Etwa so:

Code:
#minute hour    mday    month   wday    who     command
30      1       *       *       *       root    /volume1/web/dump/hochladen.sh

Was bedeutet, dass er jeden Tag um 1 Uhr 30 die hochladen.sh ausführt!
In der Datei hochladen.sh ist derweil folgendes hinterlegt:

Code:
#!/bin/sh
#
cd /volume1/web/dump/
cat hochladen.ftp | lftp -u USERNAME,PASSWORT -p 21 SERVERNAME/ZIELVERZEICHNIS

Die Sachen besagen dort dann, dass
- er als erstes in das Verzeichnis wechseln soll, wo er dann die hochladen.ftp mit den FTP Befehlen findet
- sich dann mittels lftp Befehl mit dem Server verbindet, gleich ins Zielverzeichnis wechselt und dort dann die Befehle aus der hochladen.ftp ausführt
- und schlussendlich fertig ist und sich wieder abmeldet

Die hochladen.ftp müsste dann in etwa so ausschauen:

Code:
mput *.DATEIENDUNG (Befehl für mehrere Dateien zum Upload)
get DATEINAME (Befehl für einfachen Upload)
lcd VERZEICHNISNAME (Befehl für Verzeichniswechsel auf lokalem Rechner [DS])
lcd VERZEICHNISPFAD (Befehl für Verzeichniswechsel auf lokalem Rechner [DS] über totale Pfadangabe)
cd VERZEICHNISNAME (Befehl für Verzeichniswechsel auf entferntem Rechner [FTP Server])
cd VERZEICHNISPFAD (Befehl für Verzeichniswechsel auf entferntem Rechner [FTP Server] über totale Pfadangabe)
bye (Trennen der Verbindung)

In Deinem Fall würden in der Datei nur zwei Zeilen stehen, nämlich:

put /PFAD/DATEINAME
bye


Kannst mir auch per eMail mal Deine Daten schicken und dann bastel ich Dir die Dateien so zusammen, dass Du mit der Sache Ruhe hast!
 

sjoerd

Benutzer
Mitglied seit
08. Feb 2013
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
@ TheGardner

Wow, cool, vielen Dank

werde dir die Tage eine entsprechende Mail zu kommen lassen, denn das sind für mich noch böhmische Dörfer.....

sjoerd
 

xabano

Benutzer
Mitglied seit
17. Aug 2008
Beiträge
411
Punkte für Reaktionen
0
Punkte
22
Mit wput geht das etwas einfacher. Beispiel:

Rich (BBCode):
wput --remove-source-files --basename=/volume1/upload/* ftp://Benutzer:Passwort@Serveradresse/Zielverzeichnis/
lädt alle Dateien aus dem Verzeichnis upload auf den Server und löscht nach erfolreicher Übertragung die Dateien im Quellverzeichnis.

Wput muss man aber zuerst über ipkg auf der DS installieren.
 

rolf87

Benutzer
Mitglied seit
09. Jul 2013
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe die Infos aus diesem Forum angewendet, um SQL-Dumps von einem FTP-Server auf die DiskStation zu laden, jedoch ohne Erfolg.
Vielleicht kann hier einer sehen, was ich falsch gemacht habe.

in der Datei /etc/crontab steht folgendes:
Rich (BBCode):
#minute hour    mday    month   wday    who     command
35      7       *       *       1,4     root    /usr/syno/bin/synopkg chkupgradepkg
27      10      *       *       1,4     root    /usr/bin/php -n -d safe_mode_exec_dir='' /usr
18      14      *       *       *       root    /volume1/Sicherungen/cron.sh

in der Datei /volume1/Sicherungen/cron.sh steht folgendes:
Rich (BBCode):
#!/bin/sh
cd /volume1/Sicherungen/SQL/
wget -o log.txt -N -r --ftp-user=user --ftp-password=pass1 ftp://ftp1
wget -o log.txt -N -r --ftp-user=user --ftp-password=pass2 ftp://ftp2

Hier sollten direkt von mehreren, in diesem Fall von zwei, FTP-Servern die Daten gesichert werden.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.153
Punkte für Reaktionen
400
Punkte
393
Hallo,
schreibe den kompletten Pfad zu wget in das Script
/usr/syno/bin/wget

Gruß Götz
 

rolf87

Benutzer
Mitglied seit
09. Jul 2013
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Vielen Dank für die Antwort,

in der Datei steht jetzt:
Rich (BBCode):
#!/bin/sh
cd /volume1/Sicherungen/SQL/
/usr/syno/bin/wget -o log.txt -N -r --ftp-user=user --ftp-password=pass1 ftp://ftp1
/usr/syno/bin/wget -o log.txt -N -r --ftp-user=user --ftp-password=pass2 ftp://ftp2

Allerdings tut sich da immer noch nichts. Nach dem speichern habe ich die Diskstation auch neu gestartet.

Wenn ich eine Zeile in der Kommandozeile ausführe, klappt das.
 

rolf87

Benutzer
Mitglied seit
09. Jul 2013
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Ok,
habe den Fehler jetzt gefunden:
Ich habe die Datei mit Windows über FTP abegspeichert, dabei sind die Zeilenumbrüche kapputt gegangen, deswegen musste man das nochmal mit dem vi bearbeiten. Jetzt klappt das endlich :)
 

ottosykora

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
8.805
Punkte für Reaktionen
1.124
Punkte
288
Habe so einen upload und sogar laden von einem Server und upload zum anderen mit net2ftp gemacht. Leider hat sich das Program selber updated und seit dem geht es gar nicht mehr.
 

MatzeB

Benutzer
Mitglied seit
22. Mai 2013
Beiträge
55
Punkte für Reaktionen
0
Punkte
12
Mit wput geht das etwas einfacher. Beispiel:

Rich (BBCode):
wput --remove-source-files --basename=/volume1/upload/* ftp://Benutzer:Passwort@Serveradresse/Zielverzeichnis/
lädt alle Dateien aus dem Verzeichnis upload auf den Server und löscht nach erfolreicher Übertragung die Dateien im Quellverzeichnis.

Danke xabano, danach hab ich gesucht - genau die Lösung für mich!
Allerdings hat deine Variante (--basename) bei mir das aktuelle verzeichnis hochgeladen, nicht die Dateien im übergebenem Pfad.
Folgende Änderung hat bei mir aber funktioniert und alle Dateien im Ordner /upftp hochgeladen:

Rich (BBCode):
wput /volume1/Video/upftp/ ftp://Nutzer:Passwort@serveradresse/
 
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