Bagaimana cara gzip direktori, transfer via scp, dan dekompresi dalam satu perintah?


11

Saya sering mentransfer direktori besar scpdan akan terasa manis jika saya dapat memampatkan direktori, mengirimnya, dan mendekompres semuanya menjadi satu.

Apakah hal seperti ini mungkin?

Jawaban:


29

Bagaimana kalau menggunakan rsyncsebagai gantinya dengan -zopsi yang diaktifkan untuk kompresi?

rsync -az --progress source_dir/* remote_host:/destination_dir

Ini juga memiliki manfaat tambahan bahwa jika file sudah ada dan tidak berubah pada tujuan, itu tidak akan ditransfer.


7

Berkat jawaban @ johnshen64, saya dapat menemukan sesuatu yang cukup bagus

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

Sayangnya, ini tidak menunjukkan kemajuan saat transfer. Saya perhatikan peningkatan kecepatan luar biasa menggunakan metode ini.

Jika ada yang tahu cara menunjukkan kemajuan untuk transfer seperti ini, saya akan sangat menghargai bantuannya :)


1
Masukkan pvantara tar dan ssh .
user1686

Ini bagus jika Anda tidak memiliki rsync yang tersedia
Simon Hartcher

2

baik, saya akan menggunakan tar saja

tar cf - direktori | server ssh 'tar xf -'

Anda dapat menambahkan v untuk memverifikasi.

zip harus sama, tetapi tar lebih kuat untuk linux menurut saya.


+1 terima kasih atas bantuan Anda; ini membuat saya setengah jalan ke sana. Saya dapat menemukan solusi yang tidak menggunakan -karakter samar , juga menggunakan kompresi gzip dan memungkinkan untuk menargetkan direktori tujuan.
macek

@ Macek: Catatan yang f -mungkin diperlukan pada sistem operasi lain, karena sebagian besar versi tar akan mencoba membaca dari tape drive. Membaca dari stdin secara default adalah khusus untuk GNU.
user1686
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.