rsync в сжатый архив файла

11

Я беру резервные копии сервера с rsync, но они довольно большие, и я бы хотел их сжать. Есть ли способ создать какую-то оболочку для rsync, чтобы разархивировать файл в резервной копии, rsync внести изменения из оперативного файла, а затем повторно сжать файл, как только он будет скопирован?

Т.е. , если исходные файлы на живые Foo , бар и Баз , резервное копирование имеет foo.gz , bar.gz и baz.gz .

Чтобы переформулировать: я хочу сжатые файлы на одном конце и несжатые файлы на другом конце. Я не хочу сжимать перед rsyncing, потому что даже с --rsyncable это делает rsync менее эффективным. Я знаю о опции -z для rsync. У меня нет места на резервной машине для хранения всех файлов без сжатия.

rjmunro
источник

Ответы:

10

Я не уверен, что понимаю, что вы пытаетесь сделать, но вы могли бы создавать резервные копии в формате gzip на главном сервере, чтобы быть уверенным, что они легко перезаписываются и не беспокоятся о распаковке чего-либо при передаче.

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.
AB
источник
Ницца. Я не знал о флаге rsyncable. Это удобно Интересно, почему это не по умолчанию для потери в 1%
Мэтт Симмонс
Примечание: опция --rsyncable доступна не во всех версиях gzip, а также из обычно применяемого патча, а не из основного кода gzip, поэтому номеров версий недостаточно, чтобы узнать, есть ли он у вас.
mc0e
-1

Вы можете написать оболочку для rsync. Если вы «вытягиваете» данные, делать нечего. Если вы хотите «переместить» данные с исходных компьютеров на сервер резервного копирования, то более тонко заставить их работать:

Прежде всего вы должны быть уверены, что оболочка вызывается с тем же именем, путем и параметрами, что и исходный rsync, по крайней мере для пользователя, под которым вы запускаете резервные копии.

Во-вторых, не пишите ничего в stdout, потому что это повредит канал связи.

И в-третьих, обязательно передайте все параметры, которые вы получите, просто изменив их в соответствии с новыми несжатыми адресатами.

Хавьер
источник
-2

Он, вероятно, ищет сжатие при передаче данных через rsync, а не сжатие файлов на другом конце.

Проверьте: http://jimmyg.org/blog/2007/rsync-basics.html

Параметры сжатия со страницы руководства:

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

        --compress-level=NUM    explicitly set compression level

По умолчанию ssh в некоторой степени выполняет собственное сжатие. Я не знаю, насколько лучше rsync по сравнению с нативным ssh. Если большинство ваших файлов уже сжаты в файлы gzip, вероятно, вам не поможет механизм сжатия rsync. Вы можете только сжать файл так много.


источник
Нет, я ищу сжатие файлов только на одном конце. rsyncing уже сжатых файлов неэффективен, поэтому я бы хотел, чтобы rsync выполнялся с несжатыми данными.
rjmunro