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

  • 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.

sjoerd

Benutzer
Registriert
08. Feb. 2013
Beiträge
16
Reaktionspunkte
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
 
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!
 
@ 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
 
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.
 
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.
 
Hallo,
schreibe den kompletten Pfad zu wget in das Script
/usr/syno/bin/wget

Gruß Götz
 
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.
 
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 :-)
 
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.
 
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