Выпуск утилит для резервного копирования Rsync 3.2.7 и rclone 1.6

Опубликован выпуск Rsync 3.2.7, утилиты для синхронизации файлов и резервного копирования, позволяющей минимизировать трафик за счёт инкрементального копирования изменений. В качестве транспорта могут быть использованы ssh, rsh или собственный протокол rsync. Поддерживается организация работы анонимных rsync-серверов, оптимально подходящих для обеспечения синхронизации зеркал.
Код проекта распространяется под лицензией GPLv3.

Среди добавленных изменений:

  • Разрешено использование хэшей SHA512, SHA256 и SHA1 при аутентификации подключения пользователя к фоновому процессу rsync (ранее поддерживались MD5 и MD4).
  • Реализована возможность использования алгоритма SHA1 для расчёта контрольных сумма файлов. Из-за большого размера хэшу SHA1 присвоен самый низкий приоритет в списке согласования хэшей. Для принудительного выбора SHA1 можно использовать опцию “–checksum-choice”.
  • Для снижения вероятности появления коллизий хэш-таблица атрибутов xattr переведена на использование 64-разрядных ключей.
  • Обеспечена возможность вывода информации о поддерживаемых в rsync алгоритмах в формате JSON (включается через дублирование опции –version (“-VV”)) Дополнительно добавлен скрипт support/json-rsync-version, позволяющий сформировать аналогичный JSON-вывод на основе информации, выдаваемой в текстовом виде при одинарном указании опции “–version” (для совместимости с прошлыми выпусками rsync).
  • Настройка “use chroot” в rsyncd.conf, регулирующая использование вызова chroot для дополнительной изоляции процесса, по умолчанию выставлена в значение “unset”, которое позволяет использовать chroot в зависимости от его доступности (например, включать когда rsync запущен с правами root и не включать, когда запущен под не привилегированным пользователем).
  • Примерно в два раза повышена производительность алгоритма поиска базовых файлов для отсутствующих целевых файлов, применяемого при указании опции “–fuzzy”.
  • Изменено представление времени в протоколе, применяемое при взаимодействии со старыми выпусками Rsync (до ветки 3.0) – 4-байтовое эпохальное время в этом случае обрабатывается как “unsigned int”, что не позволяет передавать время до 1970 года, но решает проблему с указанием времени после 2038 года.
  • Отсутствие целевого пути при вызове клиента rsync теперь трактуется как ошибка. Для возвращения старого поведения, при котором пустой путь трактовался как “.”, предложена опция “–old-args”.

Дополнительно можно отметить публикацию выпуска утилиты rclone 1.60, которая представляет собой аналог rsync, предназначенный для копирования и синхронизации данных между локальной системой и различными облачными хранилищами, такими как Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, OneDrive, Swift, Hubic, Cloudfiles, Google Cloud Storage, Mail.ru Cloud и Яндекс.Диск. Код проекта написан на языке Go и распространяется под лицензией MIT.

В новом выпуске:
добавлены бэкенды для хранения резервных копий в хранилищах Oracle object storage и SMB/CIFS. В бэкенде хранения S3 реализована поддержка версионирования и добавлена возможность работы через провайдеров IONOS Cloud Storage и Qiniu KODO. В бэкенд local встроена возможность добавления фильтров для игнорирования ошибок, связанных с правами доступа.

Release. Ссылка here.