tar / cpioとsshを使用してリモートシステムにアーカイブしますか?

tar / cpioとsshを使用してリモートシステムにアーカイブしますか?

私はUbuntuで複数のVPSを借りて、そのうちの1つをうまく埋めました。これには、アーカイブに入れたい多くのファイルを含む複数のディレクトリがあります。残念ながら、そのようなアーカイブを作成するのに十分なスペースがありません(ルートでも可能です)。

その場合は、tar(優先)またはcpioを使用して他のVPSからアーカイブを作成できるかどうか疑問に思います。アーカイブを圧縮したいので、tarjオプション(bzip2)呼び出しを使用するか、特定の時点で(可能であればネットワーク経由で転送する前に)ファイルをパイプに転送してください。bzip2ファイルを圧縮するための最良の方法の提案はありますか?

最後に、両方のVPSにsshとsshdがインストールされているので、それを使用してファイルを転送したいと思います。

+++

残念ながら、私はこのようにtar / cpioまたはsshを使用する専門家ではないので、このようなことをどのように(最良に)実行できるかについては少し理解できません。どうやって使うべきですかssh?トンネルやパイプのように、FTPのように、SCPのように?どうやって使うべきですかtar? 2つのVPStar間でSSHトンネルを使用して実行していますか?ソースVPSでtarを実行して結果をトンネリングした後、結果をターゲットVPSのファイルにリダイレクトしますか?

ではどうすればいいですか?

このようなタスクを実行する他のより良い方法はありますか?特別な目的のパッケージ? Webソケットを使用していますか?他にはありませんか?

答え1

パイプで十分です。ただし:

tar -cvj /path/to/your/files | ssh remote "cat > file.tar.bz2"

(キーを使ってパスワードのないログインを設定した場合)

後で別のコンピューターで、次を使用して受信したファイルを解凍できます。tar -xvf path.tar.bz2 -C ./

答え2

同様の方法でSSHを介してアーカイブおよびコピーできます。

tar zcvf - stuff/ | ssh alex@localhost 'cat - > /tmp/stuff.tar.gz'

ここではtar.gzアーカイブを作成しますが、使用している一部のファイルには保存しません。-これは標準出力です。標準出力-それからsshにパイプし、そこからstdoutから猫にパイプします。猫 - >2番目のコンピュータのファイルにリダイレクトされます。

フィードバックのユーザーArkadiusz Drabczykの提案も良いです。一度設定すると使えるからです。MVあるコンピュータから別のコンピュータに移動します。 sshfsを使用するには、まずSSHをインストールしてから次のものをインストールする必要があります。

sudo sshfs [email protected]:/ /mnt/droplet

答え3

私はいつもrsyncこのような状況に使用します。全体のプロセスをより柔軟で信頼性の高いものにします。たとえば、プロセス全体を再開し、停止/失敗/中断された場所から続行できます。

関連情報