1. ホーム
  2. bash

[解決済み] 部分的にコピーされたファイルでscpを再開するには?[クローズド]

2022-05-29 21:26:40

質問

私はファイルの巨大なフォルダをコピーするためにscpシェルコマンドを使用しています。

しかし、ある時点で、私は実行中のコマンドを(Ctrl+Cまたはkillで)終了させなければなりませんでした。

私の理解では、scp はファイルを順次コピーするので、部分的にコピーされたファイルは 1 つしかないはずです。

正常にコピーされたファイルを上書きせず、部分的にコピーされたファイルを適切に処理するために、同じ scp コマンドをどのように再開することができますか。

P.S. 私はこの種のものをrsyncで行うことができることを知っていますが、何らかの理由でscpは私にとってより速く、代わりにそれを使用しています。

どのように解決するのですか?

この場合 rsync の上に ssh

rsync -P -e ssh remoteuser@remotehost:/remote/path /local/path

キーオプションは -P であり、これは --partial --progress

デフォルトでは、転送が中断された場合、rsync は部分的に転送されたファイルをすべて削除します。状況によっては、部分的に転送されたファイルを保持することがより望ましい場合があります。partial オプションを使用すると、rsync に部分ファイルを保持するように指示し、その後のファイルの残りの転送をより速くすることができます。

その他のオプション、たとえば -a (アーカイブ・モードの場合)、および -z (圧縮を有効にする) も使用できます。

マニュアルに https://download.samba.org/pub/rsync/rsync.html