〜700GiBディレクトリを圧縮して、私が制御できないリモートドライブに送信したいと思います。 tarballを作成してからコピーするローカルハードドライブのスペースがありません。リモコンはrsshで保護されています。サーバーに ssh を接続して任意のコマンドを実行することはできません。
ただし、scp、rsync、または sftp を使用できます。だから私の質問は、これら3つのコマンドのうちの1つについてです。もう一方の端で任意のコマンドを実行できないように、scp、rsync、またはsftpにパイプをコピーさせる方法はありますか?
アップデート:次のソリューションはセカンダリストレージでは機能しません。特定のコマンドの実行に制限されます。 ssh は使用できません。 sshを使用するコマンドはrsshを介してフィルタリング/制御されます。
最後に、私たちはすべてのセカンダリアカウントをキャンセルし、プライマリストレージのサイズを2倍にするのに多くのお金を費やしました(プライマリホストは移行なしでこれを行うことができます)。その後、一時アーカイブを作成して正常に送信しました。 (初期保存容量ではこれを行うことはできません。)
将来的には、より大きな専用ストレージを備えたセカンダリVPSを使用して、これが再度発生しないようにします。私が要求することは不可能であることが明らかでした。
答え1
正確には「パイプライン」ではありませんが、デフォルトでは、scp
特定のFD(パイプかもしれません)をホストから別のホストにコピーするように指示できます。単純なbashコマンドは次のとおりです。
(scp
事前に寸法を決定する必要があるため動作しません):
scp <(tar cz files to compress) host:/path/to/new.file
ただし、pureと一緒に使用できますssh
。
tar cz files to compress | ssh host "cat > /path/to/new.file"
答え2
SFTPによるRSYNC動作
mirror
何も圧縮せずに、LFTP(名前が間違っている)とLFTPサブシステムを使用して、ディレクトリ構造を反対側にコピーできます。 LFTPはSFTPをサポートし、ミラーリングサブシステムはrsyncのほぼすべての機能をサポートします。転送速度を上げるために、必要な数の接続に分割することもできます。私はいつもこれをする。
また、以下の記事を確認してください。 https://serverfault.com/questions/135618/is-it-possible-to-use-rsync-over-sftp-without-an-ssh-shell