scpが完了した後にファイルが破損していることを確認する必要がありますか?

scpが完了した後にファイルが破損していることを確認する必要がありますか?

scp次のコマンドを使用して、多くのファイルとフォルダを再帰的に転送しました。

scp -rp /source/folder [email protected]:/destination/folder

scp転送が完了した後、すべてのファイルが破損せずに転送されたかどうかを確認する必要があります(ファイルが正しく転送されていない場合は、いくつかのエラーメッセージが表示されます)。

ベストアンサー1

scp相手が送信したすべてのデータをコピーしたことを確認してください。転送の整合性は、暗号化されたチャネルプロトコルによって保証されます。したがって、転送後に整合性を確認する必要はありません。比較するデータはおそらくキャッシュから読み取られるため、これは冗長であり、ハードウェアエラーをキャッチする可能性が低くなります。定期的にデータを検証することは便利ですが、転送後すぐに検証することは意味がありません。

scpしかし、これが何かが間違っていることを知らせていないことを確認したいと思います。エラーメッセージが必要ですが、scp何かが間違っている場合はゼロ以外の終了コードが返されることが信頼できる指標です。

scpより正確には、0(つまり成功ステータスコード)を返すと、ファイルが正しく転送されたことがわかります。終了ステータスが 0 であることを確認してください。それにもかかわらず、コマンドを実行するときに必要です。エラー状態を返したりscp、信号でシャットダウンしたり、システムのクラッシュや実行時に電力損失によってシャットダウンしない場合は保証できません。特に、scpファイルは最後の名前まで直接コピーされるため、システムがクラッシュしたときに部分的なファイルのみが残る可能性があります。コピーされた部分は正しいことが保証されますが、ファイルが切り捨てられる可能性があります。

安定性を高めるには、scpの代わりにrsyncを使用してください。特に指示がない限り、rsync は一時ファイルに書き込み、完了するとそのファイルを所定の位置に移動します。したがって、rsyncが成功コードを返すと、ファイルが存在し、正確で完全なコピーであることがわかります。 rsyncがエラーコードを返さない場合、ファイルは存在しません(この場合、以前のバージョンのファイルが存在しない限り)。以前のバージョンは変更されません)。

おすすめ記事