Спустя пять с половиной лет с момента прошлого значительного выпуска представлен (http://lists.samba.org/archive/rsync-announce/2013/000085.html) релиз Rsync 3.1.0 (http://rsync.samba.org/), популярной утилиты для синхронизации файлов и резервного копирования, позволяющей минимизировать трафик за счёт инкрементального копирования изменений. В качестве транспорта могут быть использованы ssh, rsh или собственный протокол rsync. Поддерживается организация работы анонимных rsync-серверов, оптимально подходящих для обеспечения синхронизации зеркал. Новая версия примечательная добавлением большой порции улучшений и проведением работы по увеличению производительности.
Из изменений (http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0-NEWS) можно выделить:
- Несколько изменений, нарушающих обратную совместимость на уровне вывода статистики: большие числа теперь группируются блоками по три цифры (например, "1,234,567"), для отключения данной особенности и настройки вывода могут использоваться опции "--human-readable" и "--out-format", а также директива "log format". Работа опции "--list-only" теперь выводит префиксы величин (например, 10M) при использовании включенного по умолчанию режима читаемого вывода и выводит данные в столбцы по 14 символов (ранее было 11). Для возвращения старого формата вывода следует использовать опцию "--no-h". Изменён вывод при использовании опции "--progress". Расширена информация, выводимая при указании опции "--stats": вывод стал более наглядным, добавлено раздельное отображение разных типов счётчиков, добавлены данные о числе удалённых и созданных файлов;- Новые вспомогательные скрипты: "instant-rsyncd" для быстрой настройки работы демона rsync для текущей директории; "mapfrom" и "mapto" для упрощения привязки пользователей/групп локальной системы с файлами passwd/group на другой машине; переписанная на perl версия lsh; rsync-slash-strip для задания альтернативного обработчика слешей в хвосте аргумента пути.
- Полностью переписан код, отвечающий за ввода/вывод. Увеличено использование буферизации при чтении из сокета. Передача данных между получателем и источником переведена на механизм мультиплексирования соединений. Время простоя, затрачиваемое источником на поиск файлов для передачи, теперь не тратится впустую, а параллельно используется для сканирования состояния директорий отправителем. Проведён рефакторинг кода фильтрации, направленный на увеличение расширяемости и улучшения качества проверок;
- Переработан код, связанный с выполнением задач резервного копирования иерархии директорий. При резервном копировании файла осуществляется попытка создания жесткой ссылки с последующей атомарной заменой целевого файла;
- Добавлена поддержка синхронизации времени модификации с точностью до наносекунд;- Поставляемая в комплекте библиотека zlib обновлена до версии 1.2.8. Обеспечена возможность сборки с использованием внешней библиотеки zlib, установленной в операционной системе, вместо поставляемого в комплекте оптимизированного варианта (следует использовать опцию "./configure --with-included-zlib=no"). В будущем планируется отказаться от поставки zlib в комплекте;
- Добавлена опция "--remote-option=OPT" ("-M OPT"), позволяющая передать настройки удалённой стороне (например, --log-file=FILE или --fake-super);
- Добавлены опции "--info=FLAGS" и "--debug=FLAGS" для тонкого управления выводом. Обеспечена возможность вывода отладочной информации в STDERR через указание опции "--msgs2stderr";
- Добавлены опции --delete-missing-args и --ignore-missing-args позволяющие избежать вывода ошибки при отсутствии файлов со списком масок для удаления и игнорирования;
- Добавлены опции "--usermap"/"--groupmap"/"--chown" для манипулирования параметрами владельцев файлов в процессе копирования;
- Добавлена escape-последовательность "%C", которая может быть использована для сохранения в лог MD5-хэшей передаваемых файлов или вывода результирующей контрольной суммы для всех переданных файлов, в случае использования опции "--checksum";
- В файл конфигурации демона rsync добавлены опции "reverse lookup" и "forward lookup" для отключения резолвинга IP-адресов в DNS и поиска имён в локальном файле имён хостов;
- В демон rsync добавлена поддержка авторизации на уровне отдельных пользователей и групп через директиву "auth users";
- В файле конфигурации демона rsync теперь можно использовать переменные окружения (задаются в формате %VAR%);
- Добавлена опция "--preallocate" для предварительного резервирования места;- Возможность получения паролей через стандартный ввод через указание опции "--password-file=-";
- Добавлена возможность обращения к удалённому серверу rsync с использованием stunnel через специальный скрипт-обвёртку rsync-ssl;
- Добавлена опция "--outbuf=N|L|B" для выбора типа буферизации вывода;
- В опции "--chmod" теперь можно задавать права доступа в числовом представлении, например "--chmod=644,D755";
- Добавлен код для поддержки xattr в Solaris;
- Устранены проблемы со сборкой на платформах Android и Minix.
URL: http://lists.samba.org/archive/rsync-announce/2013/000085.html
Новость: http://www.opennet.me/opennews/art.shtml?num=38026
Приятно что такие мощные и гибкие инструменты, как Rsync продолжают свое развитие!
Скажем честно в некоторых ситуациях Rsync просто незаменим.
> Переработан код, связанный с выполнением задач резервного копирования иерархии директорий. При резервном копировании файла осуществляется попытка создания жесткой ссылки с последующей атомарной заменой целевого файла;Поясните пожалуйста, что здесь написано?
The backup code was improved to use better logic maintaining the backup
directory hierarchy. Also, when a file is being backed up, rsync tries
to hard-link it into place so that the upcoming replacement of the
destination file will be atomic (for the normal, non-inplace logic).
У rsync есть опция --backup. Теперь, когда файл бекапится, сначала создается хард линк на бекап файл, как бы для проверки. И если хардлинк удалось создать, тогда и сам файл бекапа пишется. Так сказать для надежности.:)
> У rsync есть опция --backup. Теперь, когда файл бекапится, сначала создается хард
> линк на бекап файл, как бы для проверки. И если хардлинк
> удалось создать, тогда и сам файл бекапа пишется. Так сказать для
> надежности.:)не вру. это не тест создание, а именно для атомарности операции. на случай, если файл большой и копирование в бекап может привести к неполному файлу.
А, понял, спасибо.
Атомарность в смысле малыми частями или единой неделимой? Во втором случае, должен создаваться хардлинк, файл постепенно копируется, но по хардлинку доступен все время (хардлинк ведет на струю версию файла или на файл в источнике?), когда докопировалось, хардлинк заменяется файлом. Так?
Одна из программ, без которых как без рук.
Незаменимая программа. Рад, что она развивается.
Программка мне очень понравилась, легко и быстро протестировал, настроил на рабочих серверах, а вот на Samba-шарах столкнулся с проблеммкой. Rsync во время бэкапа переименовывал файлы в именах которых присутствовал символ "№" Поначалу забил, надеясь что это редкий исключительный случай, а как позже выяснилось в компании просто мода была обзывать так файлы. В общем Rsync в инкрементальные бэкапы постоянно складывал не меняющиеся файлы с символом "№"
Теперь использую две системы Rsync и ещё что то )
Это тебя боженька покарал за то, что ты слово "проблема" с двумя "м" написал.
В скриптах используете нужное число кавычек?
В линуксе проблема не проявляется у меня.
А чем можно бэкапить блочные устройства? Хочется чтобы навроде rsync, но чтоб сверяло изменившиеся блоки и блоки в архиве, и чтобы с дедупликацией и сжатием. :)
Есть такое чудо?
zbackup
Теперь при указании backup-dir она создаётся всегда, даже если не было изменений и бекап не нужен :(. Получается куча пустых каталогов. Невозможно теперь ориентироваться на наличие изменений, смотря на наличие backup-dir с именем в виде даты.