Rsyncプロトコルを介してバックアップサーバーにアクセスできます(rsyncのみ、他には何もありません)。ここで、そこからファイル(.tar.gz)をフェッチし、アーカイブをローカルファイルシステムに保存せずに、直接tarコマンドに渡します。
視覚化するには、sshアクセスで次のことができます。
ssh remote_Host cat backup.file.tar.gz | tar xzf -
そして、実際に.tar.gzをローカルマシンに保存せずに、非圧縮バックアップをローカルで取得します。
Rsyncを使用するときに達成することは可能ですか?
通常、次のように名前付きパイプを使用できます。
mkfifo mypipe
tar xzf mypipe &
rsync --inplace server:/remote/file.tar.gz mypipe
ただし、rsyncは、リモートファイルが通常のファイルであり、ローカルファイルがパイプであることを認識するため、それ自体では賢すぎます。そのため、最初にパイプを削除してから、リモートファイルを転送します。 scp
にはこの問題はなく、名前付きパイプにデータを送信します(残念ながら、ここでは役に立ちません)。
そうは思いませんが、scp
を使用できる可能性があります。
scp file /dev/stdout
ファイルを標準出力にコピーします。 scp
のコマンドライン引数に、ファイルのソースに必要なリモートユーザーとホストの情報を追加できます。
rsyncは、rshまたはsshプロトコルのみを実行できます。 sshを使用していない場合は、rshを使用している必要があります。 sshをrshコマンドに置き換えるだけです。
rsh remote_Host cat backup.file.tar.gz | tarxzf-
短くするために:あなたはできません。 rsyncは、rsyncの2つのインスタンス(クライアント側とサーバー側)間で通信して、違いを見つけることで機能します。 tarは「rsyncish」を話すことができません。