fragezeichen123
Goto Top

FTP-Dowload

Hi,
ich möchte eine Datei automatisch per Batch von meinem Server downloaden.
Das verzeichniss ist mit einer .htaccess datei geschütz.
Hab schon einige Beispiele aus dem Internet getestet, jedoch ohne Erfolg face-sad
Kann mir vielleicht jemand ein .ftp skript zeigen, dass die Datei holen kann.
Danke für eure Hilfe

Gruß
?123

Content-ID: 255727

Url: https://administrator.de/contentid/255727

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

Dani
Dani 24.11.2014 um 19:45:57 Uhr
Goto Top
Moin,
ich würde sagen wir erarbeiten die Lösung zusammen.
Was hast du bisher an Skriptzeilen zusammen geschrieben? Wie lautet die Fehlermeldung?


Gruß,
Dani
Fragezeichen123
Fragezeichen123 24.11.2014 um 19:59:51 Uhr
Goto Top
Jo,
Das würde ich auch sagen face-smile
Einen Moment.....
Fragezeichen123
Fragezeichen123 24.11.2014 aktualisiert um 20:04:41 Uhr
Goto Top
Also...
Das ist die Batch Datei:
ftp -s:DatenHolen.ftp
PAUSE
exit

Und das hier die ftp:
OPEN http://www.xxxxxxxxxxxx.de/Security/Updates/
MeinUsername
MeinPasswort
GET /123.bat C:\Zielverzeichnis\
bye


Hoffe du kannst was damit anfangen... hab das Gefühl, dass des mit htacces nicht funktioniert.
Danke für deine Bemühungen
Gruß
?123
echo11
echo11 24.11.2014 um 20:15:21 Uhr
Goto Top

Probier es mal ohne das "http://www.", also nur "xxxxx.de". Du versuchst ja eine FTP-Verbindung aufzubauen, keine HTTP.

Hoffe du kannst was damit anfangen... hab das Gefühl, dass des mit htacces nicht funktioniert.

htaccess wird nur von Webservern gelesen und verarbeitet. Wichtig ist aber, dass du beim FTP-Verbindungsaufbau die FTP-Zugangsdaten angibst, nicht die Daten aus der htaccess.

Gruß
Fragezeichen123
Fragezeichen123 24.11.2014 um 20:21:19 Uhr
Goto Top
Hey,
Warum muss ich mein Passwort eingeben, wenn ich im Browser auch ohne da hin komm?
(htacces hat ein anderes PW)
Gruß

?123
Lochkartenstanzer
Lochkartenstanzer 24.11.2014 aktualisiert um 20:23:29 Uhr
Goto Top

Das ist keine ftp-URI wenn du über http Dateien holen willst, mußt Du einen http-Client wie z.B. wget nehmen. Oder falls Du wirklich per ftp Datein üebrtragen willst, mußt Du auch den ftp-service nutzen.

lks
echo11
echo11 24.11.2014 um 20:27:40 Uhr
Goto Top
Zitat von @Fragezeichen123:

Hey,
Warum muss ich mein Passwort eingeben, wenn ich im Browser auch ohne da hin komm?
(htacces hat ein anderes PW)

Da musst du differenzieren.

Möchtest du dich per FTP verbinden, sind die FTP-Zugangsdaten erforderlich.

Möchtest du dich per HTTP verbinden, sind, falls hinterlegt, die htaccess-Zugangsdaten erforderlich. Hast du in der htacess keine Zugangsdaten hinterlegt, wird auch nichts abgefragt.
Fragezeichen123
Fragezeichen123 24.11.2014 aktualisiert um 20:39:23 Uhr
Goto Top
Wie würde denn das skript heissen, per HTTP?
Gruß
?123


Edit:
Glaub des geht mit wget oder?
Lochkartenstanzer
Lochkartenstanzer 24.11.2014 aktualisiert um 20:41:40 Uhr
Goto Top
Zitat von @Fragezeichen123:

Wie würde denn das skript heissen, per HTTP?
Gruß
?123

wget.exe --http-user=user --http-password=password --directory-prefix=zieldirectory http://www.xxxxxxxxxxxx.de/Security/Updates/123.bat 

lks
Fragezeichen123
Fragezeichen123 24.11.2014 um 20:48:44 Uhr
Goto Top
Danke,
aber der PC sagt: "Der Befehl "wget.exe" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
KP warum
echo11
echo11 24.11.2014 um 20:55:58 Uhr
Goto Top
Weil wget eine Zusatzanwendung ist...

http://gnuwin32.sourceforge.net/packages/wget.htm

Du musst den Aufruf natürlich in dem Verzeichnis starten, in dem die wget.exe liegt... oder aber den gesamten Pfad angeben.
Fragezeichen123
Fragezeichen123 24.11.2014 um 21:13:43 Uhr
Goto Top
okay, danke, hat funktioniert face-smile
(Also mit ftp)
Jetzt steht in meinem Programm aber immer das Passwort für den FTP-Server.
Das sehe ich kritisch, gibt es also ne Möglichkeit, ohne Zusatzsoftware, einfach eine Datei zu downloaden, und htaccess zu nutzen (das Passwort von htaccess betrifft ja nicht den ganzen Server)?

Gruß
?123
echo11
echo11 24.11.2014 aktualisiert um 21:33:54 Uhr
Goto Top
Nicht per htaccess. Das hat mit FTP nichts zu tun.
Das Beispiel mit wget von iks läuft über HTTP und nutzt die htaccess-Zugangsdaten.
Fragezeichen123
Fragezeichen123 24.11.2014 um 21:53:07 Uhr
Goto Top
wenn ich den Befehl ausführe funktionierts:
powershell (new-object System.Net.WebClient).DownloadFile('http://www.xxxxxxxx.de/Security/Updates/123.bat','%TEMP%\123.bat'); Start-Process "%TEMP%\123.bat"

ich würde jetzt noch gern ne pwd abfrage einbinden. Weiss jemand, wie des geht?
Fragezeichen123
Fragezeichen123 24.11.2014 um 22:31:33 Uhr
Goto Top
Hi,
kann mir vielleicht jemand, der sich mit Powershell auskennt, in mein Skript den Speicherort der Datei auf meinem PC in das Skript einfügen?:

$webclient = new-object System.Net.WebClient
$credCache = new-object System.Net.CredentialCache
$creds = new-object System.Net.NetworkCredential("user","pass")  
$credCache.Add("http://www.xxxxxxxxxxx.de/Security/Updates/123.bat", "Basic", $creds)  
$webclient.Credentials = $credCache
$webpage = $webclient.DownloadString("http://www.xxxxxxxxxxxxxxxxxxx.de/Security/Updates/123.bat")  

Danke face-smile
Gruß
?123
Dani
Lösung Dani 24.11.2014, aktualisiert am 25.11.2014 um 20:20:10 Uhr
Goto Top
Versuchen wir es mal:
[string] $strSavePath = "C:\Temp\123.bat"  

$webclient = new-object System.Net.WebClient

$credCache = new-object System.Net.CredentialCache
$creds = new-object System.Net.NetworkCredential("user","pass")  
$credCache.Add("http://www.xxxxxxxxxxx.de/Security/Updates/123.bat", "Basic", $creds)  
$webclient.Credentials = $credCache

$webpage = $webclient.DownloadString("http://www.xxxxxxxxxxxxxxxxxxx.de/Security/Updates/123.bat")  
$webpage | Set-Content -Path $strSavePath
write-host "Heruntergeladene Datei wurde unter $strSavePath gespeichert."  
Alles ohne Gewähr!

Gruß,
Dani
Fragezeichen123
Fragezeichen123 24.11.2014 um 22:44:35 Uhr
Goto Top
Danke danke danke face-smile face-smile face-smile
Ich werde es morgen testen

Gruß
?123
Lochkartenstanzer
Lochkartenstanzer 25.11.2014 aktualisiert um 08:22:23 Uhr
Goto Top
Zitat von @Fragezeichen123:

Das sehe ich kritisch, gibt es also ne Möglichkeit, ohne Zusatzsoftware, einfach eine Datei zu downloaden, und htaccess zu
nutzen (das Passwort von htaccess betrifft ja nicht den ganzen Server)?


was spricht dagegen, weget zu verwenden, auch wenn das nicht zum Lieferumfang gehört. Inbesondere finde ich es übersichtlicher und einfacher zu warten, wenn in einer kurzen Befehlszeile alles drinsteht, als erstmal 10 Zeilen code hinschreiben zu müssen, damit man den Download hinbekommt.

lks
colinardo
Lösung colinardo 25.11.2014 aktualisiert um 20:20:02 Uhr
Goto Top
Ließe sich mit Powershell auch so abkürzen:
$web = New-Object System.Net.WebClient
$web.Credentials = Get-Credential
$web.DownloadFile('http://www.xxxxxxxxxxxxxxxxxxx.de/Security/Updates/123.bat','C:\Temp\123.bat')  
oder ab PS 3.0 geht auch Invoke-Webrequest
Invoke-Webrequest -Uri 'http://www.xxxxxxxxxxxxxxxxxxx.de/Security/Updates/123.bat' -Credential (Get-Credential) -OutFile 'C:\Temp\123.bat'  
Dann fragt dich das Script auch nach deinen Credentials.

Grüße Uwe

p.s. ich frag jetzt nicht was aus deinen USB-Sticks geworden ist face-big-smile
Fragezeichen123
Fragezeichen123 25.11.2014 um 17:50:06 Uhr
Goto Top
@ Uwe
Willst du es wissen?
Also es hat jetzt echt funktioniert! face-smile
Aber ich hatte wegen den flamern keine Lust zurück zu schreiben XD
Fragezeichen123
Fragezeichen123 25.11.2014 um 20:19:52 Uhr
Goto Top
Hat funktioniert face-smile face-smile face-smile
Danke an Alle! face-smile

Gruß
?123