![잘못된 구성 옵션: scp에 컨트롤 마스터가 있는 동안 ControlPersist가 있습니까?](https://linux55.com/image/36700/%EC%9E%98%EB%AA%BB%EB%90%9C%20%EA%B5%AC%EC%84%B1%20%EC%98%B5%EC%85%98%3A%20scp%EC%97%90%20%EC%BB%A8%ED%8A%B8%EB%A1%A4%20%EB%A7%88%EC%8A%A4%ED%84%B0%EA%B0%80%20%EC%9E%88%EB%8A%94%20%EB%8F%99%EC%95%88%20ControlPersist%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
SCP
with를 사용하여 파일을 복사하고 있는데 ControlMaster
어떻게든 이 오류가 다시 발생합니다.
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
이것은 내 쉘 스크립트입니다 -
#!/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[@]}"
내가 뭐 잘못 했어요?
이것은 쉘 스크립트를 실행하는 컴퓨터에서만 발생합니다. 다른 컴퓨터에서 동일한 쉘 스크립트를 실행했는데 제대로 작동합니다. 그래서 이 기계의 일부 설정 구성이 다른 것 같은데, 모르겠습니다.
답변1
이 ControlPersist
옵션은 OpenSSH 5.6에서 처음 등장했습니다. 이전 버전을 사용하고 있을 수 있습니다.
그렇지 않은 경우 ControlPersist
연결이 완료되면 연결을 명시적으로 종료할 수 있습니다.
답변2
가장 확실한 대답은 모든 시스템에 동일한 버전이 없으며 scp
일부 시스템에서는 이를 지원하지 않는다는 것입니다 -o ControlPersist
.
하지만 ControlMaster가 정말 필요한가요? 당신이 하는 일의 차이를 실제로 측정할 수 있습니까?
rsync를 살펴볼 수도 있습니다.