Linux

錯誤的配置選項:ControlPersist while scp with control master?

  • May 19, 2014

我正在使用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 腳本的其他機器,它工作正常。所以我猜這台機器上的一些設置配置是不同的,我不知道。

ControlPersist選項首次出現在 OpenSSH 5.6 中。您可能正在使用舊版本。

如果您沒有ControlPersist,您可以在完成連接後顯式終止連接。

最明顯的答案是您scp在所有系統上都沒有相同的版本,並且其中一些不支持-o ControlPersist.

但 ControlMaster 真的需要嗎?你真的能衡量你執行的工作的差異嗎?

此外,您可能想查看 rsync。

引用自:https://unix.stackexchange.com/questions/130758