Yerel bilgisayara SSH üzerinden tar / gz kullanarak bir dizin sıkıştırılsın mı?


15

Aslında uzak bir makinedeki bir dizini tar / gz yapmak ve uzaktaki makineden yerel makineme tekrar bağlanmak zorunda kalmadan dosyayı yerel bilgisayarıma kaydetmek istiyorum. Bunu SSH üzerinden yapmanın bir yolu var mı? Tar dosyasının uzak makinede, sadece yerel makinede depolanması gerekmez. Mümkün mü?

Yanıtlar:


26

Bunu bir ssh komutuyla yapabilirsiniz, sadece tararşivin standart çıktısında oluşturulmasını söyleyin :

ssh remote.example.com 'cd /path/to/directory && tar -cf - foo | gzip -9' >foo.tgz

Diğer makinede çok fazla dosya manipülasyonu yapmak istiyorsanız, ancak tek seferlik bir arşiv oluşturmak için aşırıya kaçan daha uygun olan başka bir yaklaşım, uzak makinenin dosya sistemini SSHFS'ye (bir FUSE dosya sistemi) monte etmektir . SSH düzeyinde sıkıştırmayı etkinleştirmelisiniz.

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

3
Sadece merak ediyorum, neden veya tar -cf - foo | gzip -9yerine tavsiye ettin ? tar -czf - footar -cz foo
Patrick

@Patrick Biraz daha taşınabilir, örneğin Solaris üzerinde çalışacak.
Gilles 'SO- kötü olmayı kes

Tüm argümanları tarif etmek çok nazik olur muydu?
Köklü V.

3
@RooticalV. dosyadan standart çıktıda tar -cf - foo( -c) arşiv oluşturur . en iyi (en yavaş) sıkıştırma yöntemini kullanır. Umurumda değilse, sadece kullanabilirsiniz . -f -foogzip -9ssh remote.example.com tar cz /path/to/directory/foo > foo.tar.gz
arekolek

-1

Bir dizini veya dosyayı yalnızca taşıma için sıkıştırarak kopyalamanın basit bir yolu için:

$ ssh domain.net 'ls foo'
file1   file2

$ ssh domain.net 'tar czf - foo' | tar xz

$ ls foo
file1   file2

1
Bu, tararşivi amaçlanan yerel makinede depolamaz .
Kusalananda

1
Bu, SSH aracılığıyla bir şeyi sıkıştırma ile nasıl kopyalayacağınızı ararken bu soruya (benim gibi) inen insanlar içindir. tar xzDaha basit ve daha okunabilir bir örnekle borudan sadece bu ek var .
Pierre de LESPINAY
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.