• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

ftp get automatisieren

hi,

hab von programmierung leider keine ahnung und hoffe ich bin hier richtig mit meiner frage...

ich hab eine cam die atomatisch jpg´s an einen ftp senden soll. leider sendet die cam nicht auf *.dyndns.org.
also sende ich die pics auf eine andere domain, was auch funktioniert.
gibt es ein skript mit dem ich die daten stündlich von dem server abholen kann?
 
Du möchtest also Daten von einem FTP-Server auf einen anderen transferieren? Hast Du zu einem der beiden einen Shellzugriff? Falls ja, würden sich wget und wput in Verbindung mit Cron anbieten. -> man wget, man wput, man cron
 
hab das jetzt mal getestet, hab aber einen fehler drin. die sachen werden runtergeladen, ich weiss aber nicht wohin. warum ist mein pfad unsupported?
die daten sollte ausgeschnitten, nicht kopiert werden...


Code:
linux:~ # wget -rv --ftp-user=www.xxx.de --ftp-password=xxx ftp://xxx.de/ /home/
--08:50:41--  ftp://xxx
           => `xxx/.listing'
Resolving xxx.de... xxx
Connecting to xxx.de|xxx|:21... connected.
Logging in as www.xxx.de ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD /xxxx ... done.
==> PASV ... done.    ==> LIST ... done.

    [ <=>                                                                                                      ] 120           --.--K/s

08:50:42 (22.24 KB/s) - `xxx/.listing' saved [120]

Removed `xxx/.listing'.
--08:50:42--  ftp://xxx/test
           => `xxx.de/save/xxx/test'
==> CWD /save/xxx ... done.
==> PASV ... done.    ==> RETR test ... done.
Length: 231

100%[=========================================================================================================>] 231           --.--K/s

08:50:43 (54.86 KB/s) - `xxx/test' saved [231]

/home/: Unsupported scheme.

FINISHED --08:50:43--
Downloaded: 231 bytes in 1 files
 
Das steht doch in der Ausgabe, dorthin:
xxx.de/save/xxx/test
. Die Daten dürften also unter /home/xxx.de/save/xxx/test zu finden sein. Wenn Du nicht immer den ganzen Serverpfad habe möchtest, kannst Du in der Manpage von wget Möglichkeiten finden, diesen abzuschneiden. Also z.B. '-nh -np --cut-dirs=2'.
 
was verstehst Du unter ausschneiden? verschieben vom Server nach lokal? das geht nicht atomar, d.h. Du brauchst 2-Schritte:

1. get
2. remove

das holen ist ja trivial, das hast Du ja schon, das löschen etwas komplexer, hier musst Du eine "interaktve" Session verwenden, d.h. per script anmelden und Datei löschen.

Hier würde ich dann auf eine ssh-Verbindung setzen:

* passwortlose public-key anmeldung ermöglichen (Konfigurationstipps gibt hier im Forum, afaik security)
* scp user@server:pfad/BILD lokaerpfad/BILD zum runterladen -> hier braucht kein Passwort verwendet zu werden, da Du mit dem entsprechenden Schlüssel arbeitest.
* ssh user@server -c "rm foobar/BILD" um das Bild anschließend zu löschen.

Wenn Du ssh mit Passworten betreiben willst, kommst Du um automatisierung mit expect nicht rum
 
Oben