Назад | Перейти на главную страницу

как сделать так, чтобы rsync не распаковывал файлы?

Я использую rsync для копирования файлов между серверами, я использую -z вариант, который сжимает данные только для этапа сетевой передачи.

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

Это возможно ?

Нет, это невозможно. Вам нужно будет сжать данные до или после их передачи.

Короткий ответ: нет.

Длинный ответ: Насколько я понимаю http://zlib.net/zlib_faq.html, zlib на самом деле сжимает не файлы, а фрагменты потока. Вы не можете быть уверены, что полная версия вашего файла существует где-то в сжатом состоянии (подумайте об отправке файла mp3 размером 200 ГБ: вам нужно 190 ГБ свободного места?).

Основная причина, по которой это невозможно, связана с характером rsync. Из man страница:

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

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

Сжимайте файлы перед их передачей в rsync.