错误的配置选项:ControlPersist while scp with control master?

错误的配置选项:ControlPersist while scp with control master?

我正在使用SCPwithControlMaster复制文件,但不知何故我又收到此错误 -

command-line: line 0: Bad configuration option: ControlPersist
command-line: line 0: Bad configuration option: ControlPersist
command-line: line 0: Bad configuration option: ControlPersist
command-line: line 0: Bad configuration option: ControlPersist
command-line: line 0: Bad configuration option: ControlPersist

这是我的 shell 脚本 -

#!/bin/bash

export PRIMARY=/filetransfer/test01/primary
readonly SERVERS_LOCATION=(machineB machineC)
export SERVERS_LOCATION_1=${SERVERS_LOCATION[0]}
export SERVERS_LOCATION_2=${SERVERS_LOCATION[1]}
export MAPPED_LOCATION=/data/snapshot
FILE_PARTITION=(550 274)

export dir3=$MAPPED_LOCATION/20140510

find "$PRIMARY" -mindepth 1 -delete

do_CopyFiles() {
  el=$1
  scp -o ControlMaster=auto -o 'ControlPath=~/.ssh/control-%r@%h:%p' -o ControlPersist=900 david@$SERVERS_LOCATION_1:$dir3/pp_week_1543_"$el"_200003_5.data $PRIMARY/. || scp -o ControlMaster=auto -o 'ControlPath=~/.ssh/control-%r@%h:%p' -o ControlPersist=900 david@$SERVERS_LOCATION_2:$dir3/pp_week_1543_"$el"_200003_5.data $PRIMARY/.
}
export -f do_CopyFiles
parallel -j 5 do_CopyFiles ::: "${FILE_PARTITION[@]}"

我做错了什么吗?

这种情况只发生在我运行 shell 脚本的机器上。我在其他机器上运行相同的 shell 脚本,它工作正常。所以我猜这台机器的某些设置配置是不同的,我不知道。

答案1

ControlPersist选项首次出现在 OpenSSH 5.6 中。您可能使用的是旧版本。

如果没有ControlPersist,您可以在完成连接后显式终止连接。

答案2

最明显的答案是您在所有系统上都没有相同的版本,scp并且其中一些系统不支持-o ControlPersist

但真的需要 ControlMaster 吗?你真的能衡量你所从事的工作的差异吗?

您可能还想研究一下 rsync。

相关内容