2009-07-15 12 views
4

J'utilise la commande shell script scp pour déplacer un fichier d'un serveur à un autre en utilisant ssh. Ma commande ressemble à ceci:Shell Script SCP Code de retour 1

scp -P 23 -i $TEST_SSHKEY $DESTINATION_PATH/$FILETOCOPY [email protected]$SERVER_BOX: 

fichier est la copie mais scp retourne le code de retour comme 1.

Pourquoi cela se produit et quelle est la solution pour cela?

+0

Votre ligne semble OK. Le code de retour 1 est une erreur générique à propos des options/paramètres. Comme la commande fonctionne c'est étrange ... Post un peu plus de votre script shell, il pourrait aider ... – neuro

Répondre

1

G'day,

Essayez d'activer le mode verbose (-v) pour voir plus de détails sur ce qui se passe plutôt que de simplement regarder un code de retour de 1 qui signifie « quelque chose de mal est arrivé ».

+0

Merci pour vos réponses, mais la sortie verbeuse renvoie -1 statut de sortie. –

+0

@prathibha, as-tu essayé les autres formes de la commande? ssh -P 23 -i .... -2 pour utiliser le protocole 2 seulement? ou essayez de spécifier l'utilisateur comme -l au lieu de @

1

J'ai ce même problème. Le problème est le serveur sur l'extrémité distante n'envoie pas un code de sortie. Comparez ces extraits de transaction.

Les causes premières $? = 1:

debug1: Sending command: scp -v -f /cfg/running-config 
Sink: C0644 3398 running-config 
running-config          100% 3398  3.3KB/s 00:00  
debug1: channel 0: free: client-session, nchannels 1 
debug1: fd 0 clearing O_NONBLOCK 
debug1: fd 1 clearing O_NONBLOCK 
Connection to xxxxx closed by remote host. 
Transferred: sent 2576, received 5216 bytes, in 1.9 seconds 
Bytes per second: sent 1346.9, received 2727.3 
debug1: Exit status -1 

La deuxième cause $?=0:

debug1: Sending command: scp -v -f /cfg/running-config 
Sink: C0644 3940 running-config 
running-config          100% 3940  3.9KB/s 00:00  
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 
debug1: channel 0: free: client-session, nchannels 1 
debug1: fd 0 clearing O_NONBLOCK 
debug1: fd 1 clearing O_NONBLOCK 
Connection to xxxxx closed by remote host. 
Transferred: sent 2624, received 5984 bytes, in 1.3 seconds 
Bytes per second: sent 2026.8, received 4622.2 

Ce sont deux HP passe sur les différentes versions de firmware. Le premier est très vieux; le second est nouveau et renvoie correctement exit-status reply 0 au client.