scp、sftp、またはrsyncパイプを使用できますか?

scp、sftp、またはrsyncパイプを使用できますか?

〜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"

おすすめ記事