Hvad er den bedste gratis scriptable SFTP-klient til Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad er den bedste gratis scriptable SFTP-klient til Windows?


Jeg har kigget på WinSCP og FileZilla. WinSCP virker ret buggy (klik her), og FileZilla virker ikke meget scriptable. [4]


Nogen forslag?


Grundlæggende hvad jeg vil gøre er: Fra en planlagt opgave log på en fjernserver, træk eventuelle filer på tværs, og fjern derefter dem fra den eksterne server.

Bedste reference


Du kan bruge scp-klienten, der leveres med kittens pscp. Du kan bruge pscp på kommandolinjen som scp i en kommandolinje linux.

Andre referencer 1


Cygwin. Du kan kombinere styrken af ​​kommandolinjen sftp med kraften i BASH scripting. Alt det, i Windows! [5] [6] [7]

Andre referencer 2


Putty scp er allerede nævnt.


Jeg vil gerne nævne kittet psftp.exe, som kan være nyt.


Brug følgende kommandolinje:


psftp.exe -l -pw -b


Dette logger ind på ftp-serveren og kører file-with-ftp-cmds imod det.


Fuld docs her:


http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html[8]

Andre referencer 3


Du kan tjekke SecureFX af VanDyke.
http://www.vandyke.com/products/securefx/[9]


eller MKS Toolkit til Sys Admins
http://mkstoolkit.com/products/tk/ds\_tkother.asp[10]

Andre referencer 4


Jeg ved, at dette er et meget gammelt spørgsmål, men tag et kig på
http://redpark.posterous.com/lftp-for-windows[11]


Fra cygwin bruger jeg kun 3 filer: bash.exe, ssh.exe og cygssp-0.dll.
Sæt dem i samme mappe som redparks Windows port af lftp og gå scripting.


Kommando linje eksempel:


D:lftp>bash
bash-4.1# export PATH=.
bash-4.1# lftp sftp://user:pass@somehost.com
lftp user@somehost.com:~> put -c cx160sd.flv
194749860 bytes transferred in 112 seconds (1.67M/s)
lftp user@somehost.com:/> exit
bash-4.1# exit
exit

D:lftp>


Det er ingen enkelt exe-løsning, men uploads viste sig at være dobbelt så hurtig som uploads af pscp.exe


Rediger: Den nye webadresse, der nu er stædig, er stoppet:
http://envelopepushing.wordpress.com/2010/08/24/lftp-for-windows/[12]

Andre referencer 5


Ikke gratis, men se på edtFTPnet/PRO for en omfattende scriptmotor, der understøtter SFTP på Windows. [13]


Her er et eksempel script:


# Sample SFTP script 
set remotehost=edtmobile
set user=javaftp
set password=javaftp
set protocol=sftp
set localdir=D:work	mp

# connect to the server
open

# change dir
cd remote/test

# put the local file test.txt to the server as mytest.txt
put test.txt mytest.txt

# disconnect
close

Andre referencer 6


Bemærk til andre:
For at oprette den planlagte opgave skal du blot åbne en teksteditor og skrive ud pscp-kommandoen. Gem derefter filen som en .bat-fil. Kapitel 5 og 6 i dokumentationen har alt, hvad du nogensinde vil vide om, hvordan pscp fungerer.


Bemærk at pscp er helt bestemt om at have en kilde og et mål. Hvis du ikke giver dem, vil pscp simpelthen vende tilbage til brugsbeskeden.


Her er et eksempel:


c:pscp.exe -pw [your password] -batch -sftp someuser@example.com:/* c:yourlocation


I dette eksempel sidder pscp.exe i roden af ​​th c-mappen. -batch deaktiverer interaktive prompter, så de ikke vil afbryde den automatiske opgave. -sftp styrer sftp-protokollen, fordi i spørgsmålet sftp er angivet./* wildcard vil bringe alt tilbage i kilden, og c: \ yourlocation angiver, hvor det ender på din maskine.


For at planlægge dette som en automatiseret opgave, skal du blot oprette planlagte opgaver. I XP er dette i Systemværktøjer. Derefter peger opgaven på den .bat-fil, du har oprettet, giver det tid til at køre, og du er indstillet.

Andre referencer 7


Rush FTP; gratis, kommer i bærbare versioner og har en omfattende scripting API (kompatibel med LUA sprog).

Andre referencer 8


Hvis du arbejder med powershell kan du bruge noget som netcmdlets (www.netcmdlets.com). Det er ikke en klient per-se, men et sæt af biblioteker (cmdlets) til internet kommunikation. Der er også en gratis personlig udgave. Det er nemt at konfigurere tidsplanopgaver for at kalde powershell script og du har den fordel at være fuldstændig fleksibel/udvidelig via kode.