私は数ホップ先のマシンを使用しており、ファイルを転送するためにポート転送を設定する必要があります。
編集:明確にするために、リモートマシンにアクセスするには複数のホップが必要です。私のマシンから、VPNをセットアップしました。ここで10.255.x.xにアクセスできます-これは、VPN経由で接続できる唯一のマシンです。 .x.xにログインしたら、他のマシンに接続できます。y.yもその1つです。
私のマシンから:
ssh -L 4567:localhost:4567 [email protected]
次に、そのマシンから:
ssh -L 4567:localhost:22 [email protected]
できます
scp -P 4567 me@localhost:/path/to/large/file.gz .
私はこの実行を無理やり残しましたが、転送がどこかで停止したことがわかりました。
Sshではなくrsyncを使用して転送を再開するためのいくつかの提案を見てきましたが、それを設定する方法がわかりません。これは可能ですか?
Scpのバージョンによっては(ソースコンピュータのバージョンが重要なようです)、scpコマンドを再実行するだけで転送を再開できます。しかし、注意してください!バージョンが部分転送をサポートしていない場合、部分ファイルは単に上書きされます。
次のrsyncスイッチは、scpがサポートしていない場合に、壊れた転送を再開するのに便利です。
--append append data onto shorter files
--append-verify like --append, but with old data in file checksum
-e, --rsh=COMMAND specify the remote Shell to use
--progress show progress during transfer
コマンド
rsync --append-verify --progress --rsh="ssh -p 4567" me@localhost:/path/to/large/file.gz .
望ましい効果が得られるはずです。 -p
sshのスイッチは小文字にする必要があります。
Scpの代わりにsftpを使用する
あなたの場合:
sftp -a -P 4567 me@localhost:/path/to/large/file.gz .
Sftpのmanページから:
-a Attempt to continue interrupted downloads rather than overwriting existing partial or complete copies of files. If the remote file contents differ from the partial local copy then the resultant file is likely to be corrupt.
rsyncはデフォルトでsshを使用します。rsyncの-eスイッチを使用して正確なsshコマンドを指定する必要がある場合があります。また、転送を再開できるように不完全なファイルを保持する--partialもあります。