この場合、scpコマンドは応答コード> 0を返しましたが、ファイルが正常にコピーされ、最終的にデータベースにロードされたため、ファイルが破損していないことを意味します。
Unix SCPコマンドは応答コード> 0にもかかわらずファイルをコピーし続けますか? resp > 0の場合、ファイルが破損しているか、まったく転送されませんか? resp> 0は、レプリケーションが停止し、ファイルがコピーされなかったことを意味すると予想しました。
使用されたコード:
scp -r [!.]* [email protected]:/home/user/DATA_* /app/data
if (($? > 0)); then touch conn_error_172_0_0_1.bad; fi
このマニュアルによると、応答コード> 0はエラーです。http://support.microfocus.com/kb/doc.php?id=7021696–
答え1
Unix SCPコマンドは応答コード> 0にもかかわらずファイルをコピーし続けますか?
この質問は意味がありません。scp
このコードは、実行中のすべての操作が完了した後にのみそのコードを返します。したがって、戻りコードを受け取ったら、scp
操作は完了です。その後は何も起こりませんでした。何も進めるscpはありません!
scp
エラー(およびエラーが発生した時点)によっては、すべてのファイル、すべてのファイル、または一部のファイルのみをコピーできます。
原子コピーが必要な場合は、代わりにrsync
オプションを--delay-updates
使用してくださいscp
。
答え2
メイン文書scp
、
ユーティリティは成功すると
scp
0を終了し、エラーが発生すると> 0を終了します。
これは特に正確ではないため、実験を試す必要があります。
scp remoteHost:/etc/no_such_file /tmp; echo SS=$? # "SS=1"
scp remoteHost:/etc/hosts /tmp; echo SS=$? # "SS=0"
scp no_such_host:/etc/hosts /tmp; echo SS=$? # "SS=255"
それでは、組み合わせを見てみましょう。
scp remoteHost:/etc/no_such_file remoteHost:/etc/hosts /tmp; echo SS=$? # "SS=1"
終了状態が 0 でない場合でも、ファイルは正常/etc/hosts
にコピーされました。一部のファイルはコピーされ、他のファイルはコピーされない場合のようです。
各ケースの終了状態は、使用するかどうか-O
(scp
新しいベースプロトコルではなく強制プロトコル)に関係なく同じです。sftp
私が下した結論は文書の結論です。終了状態が 0 でない場合は何らかのエラーが発生し、終了状態が 0 であればどの送信でもエラーは発生しません。