PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SFTP: Dateien herunterladen



michaelarban
15.09.11, 18:12
Hallo,

wie schaffe ich es, in einem shell-Skript innerhalb einer For-Schleife per SFTP mehrere Dateien herunterzuladen?

wie es manuell im shell geht weiss ich ja:




michael@xxx> sftp user@einSFTserver <<EOF
get Datei1.txt
get Date2.txt
EOF





Aber wie geht es in einem shell-Skript?

foglendes funktioniert also nicht:



#!/bin/bash

for file in [ datei1.txt , datei2.txt ]
do
sftp user@einSFTserver <<EOF
get ${file}
EOF
done




Fehlermedlung : syntax error: unexpected end of file

hat jemand eine Idee ?

danke

Roger Wilco
15.09.11, 21:50
CURL (mit SSH-Unterstützung) oder lftp wären wohl eher für Batch-Aktionen geeignet. Alternativ dazu kannst du `sftp` auch in den Batch-Modus schalten, mit dem Kommandos aus einer Datei ausgelesen oder z. B. via stdin übergeben werden können (siehe `man sftp`).

michaelarban
16.09.11, 07:40
hallo könntest du für das obige ein beispiel mit sdtin zeigen bitte?

danke

Roger Wilco
16.09.11, 10:27
$ touch test1 test2
$ ls -l ~/test[12]
-rw-r--r-- 1 user group 0 2011-09-16 11:20 /home/user/test1
-rw-r--r-- 1 user group 0 2011-09-16 11:20 /home/user/test2
$ cd /tmp
$ ls -l test
ls: cannot access test: No such file or directory
$ echo -e 'get test1\nget test2'|sftp -b - user@localhost
sftp> get test1
Fetching /home/user/test1 to test1
sftp> get test2
Fetching /home/user/test2 to test2
$ ls -l test[12]
-rw-r--r-- 1 user group 0 2011-09-16 11:24 test1
-rw-r--r-- 1 user group 0 2011-09-16 11:24 test2

michaelarban
16.09.11, 13:49
Hi
danke, so gehts auch

for file in [ datei1.txt , datei2.txt ]
do
echo "get ${file}" | sftp user@einSFTserver -b
done

derRichard
16.09.11, 14:47
Hi
danke, so gehts auch

for file in [ datei1.txt , datei2.txt ]
do
echo "get ${file}" | sftp user@einSFTserver -b
done

wenn du pro get ein login machen willst, ja...

//richard