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を見ることもできます。