回答:
sshコマンドで実行できます。tar標準出力でアーカイブを作成するように指示するだけです:
ssh remote.example.com 'cd /path/to/directory && tar -cf - foo | gzip -9' >foo.tgz
他のマシンで多くのファイル操作を行いたいが、ワンショットアーカイブの作成には過剰な場合に便利な別のアプローチは、リモートマシンのファイルシステムをSSHFS(FUSEファイルシステム)でマウントすることです。SSHレベルで圧縮を有効にする必要があります。
mkdir ~/net/remote.example.com
sshfs -C remote.example.com:/ ~/net/remote.example.com
tar -czf foo.tgz -C ~/net/remote.example.com/path/to/directory foo
tar -cf - foo(-c)にアーカイブを作成-f -しますfoo。gzip -9最高の(最も遅い)圧縮方法を使用します。気にしない場合は、を使用できますssh remote.example.com tar cz /path/to/directory/foo > foo.tar.gz。
トランスポート専用に圧縮してディレクトリまたはファイルをコピーする簡単な方法:
$ ssh domain.net 'ls foo'
file1 file2
$ ssh domain.net 'tar czf - foo' | tar xz
$ ls foo
file1 file2
tarアーカイブをローカルマシンに保存しません。これは意図されたものです。
tar xzより単純で読みやすい例で、パイプからこの追加があります。
tar -cf - foo | gzip -9代わりにあなたがお勧めしますtar -czf - fooかtar -cz foo?