私が制御していないリモートドライブに〜700GiBのディレクトリをtarして送信したいのですが。ローカルにtarballを作成してコピーするためのHDDスペースがありません。リモートもrsshで保護されています。サーバーにsshして任意のコマンドを実行することはできません。
ただし、scp、rsync、またはsftpを使用できます。したがって、私の質問は、これら3つのコマンドのいずれかに固有のものです。 scp、rsync、またはsftpがパイプをコピーし、反対側で任意のコマンドを実行できない方法はありますか?
更新:以下のソリューションは、セカンダリストレージでは機能しませんでした。特定のコマンドの実行に制限されています。 sshは使用できません。sshを使用するコマンドは、rsshでフィルタリング/制御されます。
最後に、すべてのセカンダリアカウントをキャンセルし、プライマリストレージのサイズを2倍にするために多額の費用を支払いました(プライマリホストは移行なしでこれを実行できました。これはクールでした)。次に、一時アーカイブを作成し、通常どおりに送信しました。 (これは、当初のストレージ容量では実行できませんでした。)
将来的には、専用の大容量ストレージを備えたセカンダリVPSを使用して、これが再び発生しないようにします。私が求めていたことが不可能であることは明らかです。
これは厳密には「パイプ」ではありませんが、基本的にscp
に特定のFD(パイプにすることができる)をホストから他のFDにコピーするように指示できます。次のような単純なbashコマンド:
(scp
は事前にサイズが必要なので機能しません):
scp <(tar cz files to compress) Host:/path/to/new.file
しかし、純粋なssh
で機能します。
tar cz files to compress | ssh Host "cat > /path/to/new.file"
SFTP経由のRSYNC動作
何も圧縮しなくても、LFTP(名前は誤解を招く)とLFTPのmirror
サブシステムを使用して、ディレクトリ構造を反対側に複製できます。 LFTPはSFTPをサポートし、ミラーサブシステムはrsyncのほぼすべての機能をサポートします。また、転送を必要な数の接続に分割して、転送を高速化することもできます。私はいつもこれをします。
また、この投稿をチェックしてください: https://serverfault.com/questions/135618/is-it-possible-to-use-rsync-over-sftp-without-an-ssh-Shell