2009-06-02 10 views
7

Quel est le meilleur client SFTP scriptable gratuit pour Windows?Quel est le meilleur client SFTP scriptable gratuit pour Windows?

J'ai regardé WinSCP et FileZilla. WinSCP semble tout à fait buggy (click here), et FileZilla ne semble pas très scriptable.

Des suggestions?

Fondamentalement, ce que je veux faire est: à partir d'une tâche planifiée, connectez-vous sur un serveur distant, tirez tous les fichiers, puis supprimez-les du serveur distant.

+0

Avez-vous réellement essayé WinSCP avec votre configuration? – lothar

+0

Oui, je l'ai essayé, ce bug que j'ai mentionné est le résultat de mon essai. – Chris

+3

J'ai corrigé [ce bug] (http://winscp.net/tracker/show_bug.cgi?id=433) dans WinSCP quelques jours après avoir demandé (il y a plus de 6 ans maintenant). –

Répondre

5

Vous pouvez utiliser le client scp qui vient avec pscp à mastic. Vous pouvez utiliser pscp sur la ligne de commande comme scp dans une ligne de commande linux.

+0

Je viens de passer une demi-heure en y allant un coup. Vous êtes resté bloqué sur l'invite pour l'empreinte digitale, impossible de trouver un moyen de faire disparaître cette invite dans le script. – Chris

+0

Cette invite ne devrait apparaître que la première fois que vous vous connectez à cette machine – Janusz

+0

En fait, j'ai contourné cela en canalisant dans un fichier texte d'une ligne avec 'n' comme seul contenu. Tout fonctionne! – Chris

4

Cygwin. Vous pouvez combiner la puissance de la ligne de commande sftp avec la puissance de BASH. Tout ça, dans Windows!

+1

Cygwin est une installation assez lourde, n'est-ce pas? J'espérais une solution un-exe, un peu comme exe portable winscp. Cela aiderait à calmer les choses avec les gars de l'infra. – Chris

+0

Oui. C'est une installation lourde en effet. J'ai résolu les problèmes de script de base avec WinSCP. Mais je ne sais pas si cela sera utile pour des scripts très complexes. Je n'ai pas essayé. –

+0

@Chris oui - Je refuse d'utiliser Cygwin parce que c'est trop lourd. Il existe de nombreux outils de type Unix qui ont été portés sur Windows - ils font partie de la collection [GnuWin32] (http://gnuwin32.sourceforge.net/) pour laquelle je suis si reconnaissant. –

0

Pas gratuitement, mais regardez edtFTPnet/PRO pour un moteur de script complet qui prend en charge SFTP sous Windows.

Voici un exemple de script:

# 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

Note aux autres: Pour créer la tâche planifiée, il suffit d'ouvrir un éditeur de texte et d'écrire la commande pscp. Enregistrez ensuite le fichier en tant que fichier .bat. Les chapitres 5 et 6 de la documentation contiennent tout ce que vous voulez savoir sur le fonctionnement de pscp.

Notez que pscp est assez particulier pour avoir une source et une cible. Si vous ne les fournissez pas, pscp retournera par défaut au message d'utilisation.

Voici un exemple:

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

Dans cet exemple pscp.exe est assis à la racine du répertoire c e. -batch désactive les invites interactives afin qu'elles n'interrompent pas la tâche automatisée. -sftp force le protocole sftp, car dans la question sftp est spécifié. Le caractère générique:/* ramènera tout dans la source, et le c: \ votre emplacement spécifie où il finit sur votre machine.

Pour planifier cette tâche en tant que tâche automatisée, il suffit d'appeler Tâches planifiées. Dans XP, ceci est dans les outils système. Puis pointez la tâche vers le fichier .bat que vous avez créé, donnez-lui le temps de s'exécuter et vous êtes défini.

1

Je sais que c'est une question très ancienne, mais un coup d'oeil à http://redpark.posterous.com/lftp-for-windows

De Cygwin J'utilise seulement 3 fichiers: bash.exe, ssh.exe et cygssp-0.dll. Placez-les dans le même répertoire que le port Windows de lftp de redpark et allez dans les scripts.

exemple 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> 

Il n'y a pas de solution unique exe, mais uploads avéré être deux fois plus vite que les derniers upload par pscp.exe

Edit: nouvelle URL maintenant posterious a arrêté: http://envelopepushing.wordpress.com/2010/08/24/lftp-for-windows/

+0

je maintaine quelques fenêtres construire à http://nwgat.ninja/lftp-for-windows/ si quelqu'un a besoin d'eux – wiak

3

Putty scp a déjà été mentionné.

Je tiens à mentionner mastic psftp.exe qui pourrait être nouveau.

utiliser la ligne de commande suivante:

psftp.exe -l -pw -b

Cela se connecter au serveur ftp et exécuter fichier avec FTP-cmds contre.

docs complet ici:

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

+0

+1 c'est effectivement ce que le PO a déclaré qu'il a fait dans ses commentaires. –

0

Rush FTP; gratuit, vient dans les versions portables et dispose d'une API de script complète (compatible avec le langage LUA).

0

Si vous travaillez avec PowerShell, vous pouvez utiliser quelque chose comme netcmdlets (www.netcmdlets.com). Ce n'est pas un client en soi, mais un ensemble de bibliothèques (cmdlets) pour les communications Internet. Il y a aussi une édition personnelle gratuite. Il est facile de configurer les tâches planifiées pour appeler le script powershell et vous avez l'avantage d'être complètement flexible/extensible via le code.

Questions connexes