2009-07-15 27 views
4

Ich benutze Shell Script scp Befehl, um eine Datei von einem Server zu einem anderen mit ssh zu verschieben. Mein Befehl sieht wie folgt aus:Shell Script SCP Rückgabecode 1

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

Datei kopiert aber scp kehrt Rückgabecode als 1.

Warum es geschieht und was ist die Lösung?

+0

Ihre Linie scheint in Ordnung zu sein. Returncode 1 ist ein generischer Fehler zu Optionen/Parametern. Wie der Befehl funktioniert, ist es seltsam ... Post ein bisschen mehr von Ihrem Shell-Skript kann es helfen ... – neuro

Antwort

1

G'day,

Versuchen ermöglicht ausführlichen Modus (-v), um mehr Details zu sehen, was eher vor sich geht, als nur bei einem Rückgabecode von 1 suchen, was bedeutet, „etwas Schlimmes passiert ist“.

+0

Vielen Dank für Ihre Antworten, aber ausführliche Ausgabe gibt -1 Ausgangsstatus zurück. –

+0

@ Prathhibha, haben Sie die anderen Formen des Befehls ausprobiert? ssh -P 23 -i .... -2 um nur Protokoll 2 zu verwenden? oder versuchen Sie, den Benutzer als -l anstelle von @ zu spezifizieren –

1

Ich habe das gleiche Problem. Das Problem besteht darin, dass der Server auf der Gegenstelle keinen Beendigungscode sendet. Vergleichen Sie diese Transaktionsauszüge. $? = 1

Die ersten Ursachen:

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 

Die zweite verursacht $?=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 

Dies sind zwei HP-Schalter auf unterschiedliche Firmware-Versionen. Der erste ist sehr alt; der zweite ist neu und gibt exit-status reply 0 korrekt an den Client zurück.