Nén thư mục bằng tar / gz qua SSH vào máy tính cục bộ?


15

Về cơ bản tôi muốn tar / gz một thư mục trên một máy từ xa và lưu tệp vào máy tính cục bộ của tôi mà không phải kết nối lại với máy cục bộ của tôi từ máy từ xa. Có cách nào để làm điều này qua SSH không? Tệp tar không cần phải được lưu trữ trên máy từ xa, chỉ trên máy cục bộ. Điều này có thể không?

Câu trả lời:


26

Bạn có thể làm điều đó với lệnh ssh, chỉ cần nói tarđể tạo tệp lưu trữ trên đầu ra tiêu chuẩn của nó:

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

Một cách tiếp cận khác, thuận tiện hơn nếu bạn muốn thực hiện nhiều thao tác tệp trên máy kia nhưng lại quá mức cần thiết cho việc tạo lưu trữ một lần, là gắn hệ thống tệp của máy từ xa bằng SSHFS ( hệ thống tệp FUSE ). Bạn nên kích hoạt tính năng nén ở cấp 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

3
Tôi chỉ tò mò, tại sao bạn muốn giới thiệu tar -cf - foo | gzip -9thay vì tar -czf - foohoặc tar -cz foo?
Patrick

@Patrick Di động hơn một chút, ví dụ: nó sẽ hoạt động trên Solaris.
Gilles 'SO- ngừng trở nên xấu xa'

Bạn sẽ rất tử tế để mô tả tất cả các đối số?
Rootical V.

3
@RooticalV. tar -cf - footạo ( -c) lưu trữ trên đầu ra tiêu chuẩn ( -f -) từ tệp foo. gzip -9sử dụng phương pháp nén tốt nhất (chậm nhất). Nếu bạn không quan tâm, bạn chỉ có thể sử dụng ssh remote.example.com tar cz /path/to/directory/foo > foo.tar.gz.
arekolek

-1

Đối với một cách đơn giản để sao chép một thư mục hoặc tệp bằng cách nén nó chỉ để vận chuyển:

$ ssh domain.net 'ls foo'
file1   file2

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

$ ls foo
file1   file2

1
Điều này không lưu tartrữ kho lưu trữ trên máy cục bộ, đó là những gì đã được dự định.
Kusalananda

1
Điều này dành cho những người tiếp cận câu hỏi này (như tôi) khi tìm kiếm cách sao chép một cái gì đó thông qua SSH bằng cách nén. Chỉ có bổ sung này ra tar xzkhỏi đường ống với một ví dụ đơn giản và dễ đọc hơn.
Pierre de LESPINAY
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.