rsync để nén tệp lưu trữ


11

Tôi có bản sao lưu của một máy chủ có rsync, nhưng những bản sao lưu đó khá lớn và tôi muốn nén chúng lại. Có cách nào để có một số loại trình bao bọc xung quanh rsync để gunzip tệp trong bản sao lưu, rsync các thay đổi từ tệp trực tiếp, sau đó gzip lại tệp ngay khi được sao chép không?

Tức là nếu các tập tin nguồn trên trực tiếp là foo , thanhbaz , sao lưu có foo.gz , bar.gzbaz.gz .

Để phục hồi: Tôi muốn các tệp nén ở một đầu và các tệp không nén ở đầu kia. Tôi không muốn nén trước khi rsyncing, vì ngay cả với --rsyncable, nó làm cho rsync kém hiệu quả hơn. Tôi biết về tùy chọn -z cho rsync. Tôi không có không gian trên máy sao lưu để lưu trữ tất cả các tệp không nén.

Câu trả lời:


10

Tôi không chắc là tôi hiểu những gì bạn đang cố gắng thực hiện, nhưng bạn có thể tạo các bản sao lưu được nén trên máy chủ chính để đảm bảo rằng chúng dễ dàng được đồng bộ hóa và không bận tâm giải nén bất cứ điều gì trong quá trình.

gzip(1)

--rsyncable
       While compressing, synchronize the output occasionally based on
       the  input.   This  increases  size by less than 1 percent most
       cases, but means that the rsync(1) program can much more  effi‐
       ciently  synchronize  files  compressed with this flag.  gunzip
       cannot tell the difference between a  compressed  file  created
       with this option, and one created without it.

Đẹp. Tôi không biết về cờ rsyncable. Thật tiện dụng. Tôi tự hỏi tại sao đó không phải là mặc định cho khoản lỗ 1%
Matt Simmons

Lưu ý: tùy chọn --rsyncable không khả dụng trên tất cả các phiên bản của gzip và cũng xuất phát từ một bản vá được áp dụng phổ biến thay vì mã gzip lõi, vì vậy số phiên bản không đủ để biết bạn có không.
mc0e


-1

Bạn có thể viết một trình bao bọc cho rsync. Nếu bạn 'kéo' dữ liệu, không có gì đặc biệt để làm. Nếu bạn muốn 'đẩy' dữ liệu từ các máy ban đầu sang máy chủ dự phòng, sẽ tinh tế hơn để làm cho nó hoạt động:

Trước tiên, bạn phải chắc chắn trình bao bọc được gọi với cùng tên, đường dẫn và tham số như rsync gốc, ít nhất là đối với người dùng mà bạn chạy các bản sao lưu.

Thứ hai, hãy chắc chắn không viết bất cứ điều gì cho thiết bị xuất chuẩn, bởi vì nó sẽ thu thập kênh liên lạc.

Và thứ ba, hãy chắc chắn vượt qua tất cả các tham số bạn nhận được, chỉ cần sửa đổi cho phù hợp với đích mới không bị nén.


-2

Có lẽ anh ta đang tìm cách nén truyền dữ liệu qua rsync, chứ không phải nén tập tin ở đầu kia.

Kiểm tra: http://jimmyg.org/blog/2007/rsync-basics.html

Thông số nén từ trang man:

   -z, --compress              compress file data during the transfer

        --compress-level=NUM    explicitly set compression level

Theo mặc định, ssh tự nén đến một mức độ. Tôi không biết rsync tốt hơn ssh bản địa bao nhiêu. Nếu phần lớn các tệp của bạn đã được nén thành các tệp gzip, có lẽ sẽ không có nhiều cơ chế nén của rsync có thể làm cho bạn. Bạn chỉ có thể ép một tập tin rất nhiều.


Không, tôi chỉ tìm cách nén tệp ở một đầu. rsyncing các tệp đã nén là không hiệu quả, vì vậy tôi muốn phần rsync xảy ra với dữ liệu không nén.
rjmunro
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.