Shell Script SCP返回代码1

时间:2009-07-15 09:45:38

标签: shell

我使用shell脚本scp命令使用ssh将一个文件从一个服务器移动到另一个服务器。 我的命令如下:

scp -P 23 -i $TEST_SSHKEY $DESTINATION_PATH/$FILETOCOPY $USER_ID@$SERVER_BOX:

文件正在复制,但scp将返回代码返回为1。

为什么会发生这种情况?解决方案是什么?

2 个答案:

答案 0 :(得分:1)

天儿真好,

尝试启用详细模式(-v)以查看正在进行的更多详细信息,而不仅仅是查看返回代码1,这意味着“发生了一些不好的事情”。

答案 1 :(得分:1)

我有同样的问题。问题是远程端的服务器没有发送退出代码。比较这些交易摘录。

第一个导致$? = 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

第二个导致$?=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

这是两个不同固件版本的HP交换机。第一个很老;第二个是新的,并正确地将exit-status reply 0返回给客户端。