2009-12-10 12 views
0

J'essaie de copier un fichier sur un serveur distant en utilisant la tâche scp dans Nant.Contrib.Déploiement sur un serveur distant à l'aide de scp dans le script NANT

J'ai utilisé le code suivant pour le faire:

<target name= "QADeploy"description="gthtyb" > 
<loadtasks assembly="C:\nantcontrib-0.85\bin\NAnt.Contrib.Tasks.dll" /> 
<echo message="htyh"/> 
<scp file="D:\SourceTest\redist.txt" server="\\10.4.30.19" user="xxx:uuuu">  
</scp> 
</target> 

Mais je reçois une erreur: scp n'a pas pu démarrer. Le système ne peut pas trouver le fichier spécifié. Le code est le suivant: Ensuite, je l'ai téléchargé pscp.exe et modifié le code ci-dessous:

<target name= "QADeploy" 
    description="gthtyb" > 
<loadtasks assembly="C:\nantcontrib-0.85\bin\NAnt.Contrib.Tasks.dll" /> 

<echo message="htyh"/> 

<scp file="D:\SourceTest\redist.txt" server="\\10.4.30.19" user="xxx:uuuu" program="C:\pscp\pscp.exe">  
</scp> 

Maintenant, je reçois l'erreur suivante:

[scp] ssh_init: hôte n'existe pas

Programme externe a échoué: C: \ pscp \ pscp.exe

peut u s'il vous plaît aider à ce qui est la meilleure façon de copier un fichier sur un serveur distant en utilisant Nant. J'utilise ce code pour déployer des fichiers sur un serveur distant.

Merci

+0

Est-ce que cela fonctionne localement? sur un serveur? nulle part? le serveur est-il accessible vis-à-vis de SCP à partir de la ligne de commande? –

+0

comment puis-je vérifier si un serveur est accessible via scp? – Mini

Répondre

1

Vous ne devez pas mettre deux barres obliques derrière l'adresse IP de votre serveur.

<scp file="D:\SourceTest\redist.txt" server="10.4.30.19" user="xxx:uuuu" program="C:\pscp\pscp.exe">  

Notez également que sans le paramètre "path", le dossier de destination par défaut est "~".

Mise à jour: c'est le nom d'utilisateur qui plante le programme pscp.exe. Supprimez le ":" de votre nom d'utilisateur ou essayez avec un nom différent.

+0

J'ai essayé sans les baclslashes aussi ... :) – Mini

+0

Pouvez-vous essayer en utilisant "/" pour votre chemin de programme? Ou définir le paramètre "programme-path-sep" sur "\"? –

+0

Pouvez-vous également lancer avec l'option "-v +" pour activer la sortie de débogage? Pouvez-vous également essayer de lancer pcsp sur la ligne de commande? –

0

Il semble qu'il y ait un peu d'étrangeté sur la façon dont pscp analyse les chemins dans Windows. Ce qui suit devrait corriger ssh_init: l'hôte n'existe pas problème:

-upload 
pscp some.file [email protected][remote-host-or-ip]:/some/path/ 

-download 
pscp [email protected][remote-host-or-ip]:/some/path/some.file some.file