2009-06-02 9 views
7

Qual è il miglior client SFTP con script per Windows?Qual è il miglior client SFTP gratuito per script per Windows?

Ho visto WinSCP e FileZilla. WinSCP sembra abbastanza buggy (click here) e FileZilla non sembra molto scriptable.

Qualche suggerimento?

Fondamentalmente quello che voglio fare è: da un'attività pianificata, accedere a un server remoto, trascinare i file e quindi eliminarli dal server remoto.

+0

Hai effettivamente provato WinSCP con la configurazione? – lothar

+0

Sì, l'ho provato, quel bug che ho menzionato è il risultato di me che lo sto provando. – Chris

+3

Ho riparato [quell'errore] (http://winscp.net/tracker/show_bug.cgi?id=433) in WinSCP alcuni giorni dopo aver chiesto (cosa è successo più di 6 anni fa). –

risposta

5

È possibile utilizzare il client SCP che viene fornito con stucco PSCP. È possibile utilizzare pscp sulla riga di comando come scp in una riga di comando di Linux.

+0

Ho appena passato mezz'ora a dare il via. Rimanere bloccato sul prompt per l'impronta digitale della chiave, non è riuscito a trovare alcun modo per far scomparire tale prompt in script. – Chris

+0

questa richiesta dovrebbe apparire solo la prima volta che ci si connette a questa macchina – Janusz

+0

In realtà, ho risolto il problema inserendo un file di testo a una riga con "n" come unico contenuto. Funziona tutto! – Chris

4

Cygwin. È possibile combinare la potenza della riga di comando sftp con la potenza dello script BASH. Tutto questo, in Windows!

+1

Cygwin è un'installazione piuttosto pesante, non è vero? Speravo in una soluzione one-exe, simile a un exe portatile winscp. Aiuterebbe le cose con i ragazzi dell'infra. – Chris

+0

Sì. È davvero un'installazione pesante. Ho risolto problemi di scripting di base con WinSCP. Ma non so se sarà utile per script molto complessi. Non l'ho provato –

+0

@Chris sì - Mi rifiuto di usare Cygwin perché è così pesante. Ci sono molti strumenti simili a Unix che sono stati portati su Windows - fanno parte della collezione [GnuWin32] (http://gnuwin32.sourceforge.net/) per la quale sono sempre così grato. –

0

Non libero, ma guardare edtFTPnet/PRO per un motore di script completo che supporta SFTP su Windows.

Ecco uno script di esempio:

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

# 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 
0

Nota per gli altri: Per creare l'attività pianificata, è sufficiente aprire un editor di testo e scrivere il comando PSCP. Quindi salvare il file come file .bat. I capitoli 5 e 6 della documentazione hanno tutto ciò che vorresti sapere su come funziona pscp.

Si noti che pscp è piuttosto particolare sull'avere una fonte e una destinazione. Se non li fornite, pscp tornerà automaticamente al messaggio di utilizzo.

Ecco un esempio:

c:\pscp.exe -pw [your password] -batch -sftp [email protected]:/* c:\yourlocation 

In questo esempio pscp.exe è seduto nella radice della directory c °. -batch disabilita i prompt interattivi in ​​modo che non interrompano l'attività automatizzata. -sftp forza il protocollo sftp, perché nella domanda è specificato lo sftp. Il carattere:/* restituirà tutto nella sorgente e c: \ la tua posizione specifica dove finisce sulla tua macchina.

Per pianificare questo come un'attività automatica, è sufficiente richiamare Attività pianificate. In XP, questo è in Strumenti di sistema. Quindi punta l'attività al file .bat che hai creato, dagli un po 'di tempo per essere eseguito e sei pronto.

1

So che questa è una domanda molto vecchio, ma un'occhiata a http://redpark.posterous.com/lftp-for-windows

Da Cygwin Sto usando solo 3 file: bash.exe, ssh.exe e cygssp-0.dll. Inseriscili nella stessa directory della porta di Windows di redpark di lftp e vai allo scripting.

esempio Commandline:

D:\lftp>bash 
bash-4.1# export PATH=. 
bash-4.1# lftp sftp://user:[email protected] 
lftp [email protected]:~> put -c cx160sd.flv 
194749860 bytes transferred in 112 seconds (1.67M/s) 
lftp [email protected]:/> exit 
bash-4.1# exit 
exit 

D:\lftp> 

Si tratta di una soluzione singola exe, ma arrivi ha dimostrato di essere due volte più veloce le immagini caricate di pscp.exe

Edit: nuovo URL ora posterious si è fermato: http://envelopepushing.wordpress.com/2010/08/24/lftp-for-windows/

+0

io mantengo alcune finestre create su http://nwgat.ninja/lftp-for-windows/ se qualcuno ne ha bisogno – wiak

3

Putty scp è già stato menzionato.

Voglio menzionare putty psftp.exe che potrebbe essere nuovo.

utilizzare la seguente riga di comando:

psftp.exe -l -pw -b

Ciò accedere al server FTP ed eseguire di file-con-ftp-cmds contro di essa.

documentazione completa qui:

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

+0

+1 questo è effettivamente ciò che l'OP ha dichiarato di aver fatto nei suoi commenti. –

0

Rush FTP; gratuito, è disponibile in versioni portatili e ha un'API completa di scripting (compatibile con il linguaggio LUA).

0

Se si lavora con PowerShell è possibile utilizzare qualcosa come netcmdlets (www.netcmdlets.com). Non è un client per sé, ma un insieme di librerie (cmdlet) per le comunicazioni Internet. C'è anche un'edizione personale gratuita. È facile configurare le attività di pianificazione per chiamare lo script di PowerShell e si ha il vantaggio di essere completamente flessibili/estensibili tramite il codice.

Problemi correlati