Я использую rsync для копирования файлов между серверами, я использую -z
вариант, который сжимает данные только для этапа сетевой передачи.
Но я бы хотел оставить сжатые файлы на удаленном компьютере, а в rsync я не нашел этой опции.
Это возможно ?
Нет, это невозможно. Вам нужно будет сжать данные до или после их передачи.
Короткий ответ: нет.
Длинный ответ: Насколько я понимаю http://zlib.net/zlib_faq.html, zlib на самом деле сжимает не файлы, а фрагменты потока. Вы не можете быть уверены, что полная версия вашего файла существует где-то в сжатом состоянии (подумайте об отправке файла mp3 размером 200 ГБ: вам нужно 190 ГБ свободного места?).
Основная причина, по которой это невозможно, связана с характером rsync
. Из man
страница:
Он известен своим алгоритмом дельта-передачи, который уменьшает объем данных, отправляемых по сети, отправляя только различия между исходными файлами и существующими файлами в месте назначения.
Если вы не переносите эти файлы в первый раз, отправляются только изменения. Если бы вы могли как-то сохранить поток данных, вы бы получили своего рода сжатый файл diff, который не имел бы особого смысла.
Сжимайте файлы перед их передачей в rsync
.