Проект

Общее

Профиль

Rsync - синхронизация файлов

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

Скопировать полностью структуру фалов и папок из /home/data1/ в /home/other/data2/:

rsync -av /home/data1/ /home/other/data2/

Наличие завершающих слешей в /home/data1/ файла обязательно, иначе результат копирования будет выглядеть так:

/home/other/data2/data1/

Выполнить копирование на удалённую систему по ssh:

rsync -rvz /home/data1/ user@server.com:/home/data1/

Задать альтернативный порт ssh:

rsync -rvz -e 'ssh -p 10022' /home/data1/ user@server.com:/home/data1/

Исключить некоторые файлы:

rsync -rvz /home/data1/ --exclude="tmp/*" --exclude="*~" user@server.com:/home/data1/

Не учитывать пользователя, группу и права при передаче:

 rsync -rvz --no-p --no-o --no-g /home/data1/ user@server.com:/home/data1/

Описание опций

    -a, --archive – архивный режим, включает рекурсивное копирование и сохранение прав и владельца (ключи rlptgoD)
    -t, --times – обновлять время модификации файла на приёмной стороне. При отсутствии этой опции или -a становиться неэффективной оптимизация передачи по времени изменения файлов
    -c, --checksum – использование сверки по контрольным суммам, а не по времени изменения и размеру
    --size-only – использование для сверки только размер файлов
    -r – рекурсивный режим (копирование всех подпапок и файлов в них)
    -v – подробные вывод операций
    -z – компрессия данных при передаче
    -p – сохранять права
    --del – удалить файлы в папке назначения которых нет в источнике (точная копия)
    -R – использовать относительные пути при создании символических ссылок
    --numeric-ids – не транслировать имена владельца и группы в цифровые UID и GID, оставить на удалённой стороне номера как есть
    --bwlimit=KBPS – ограничение пропускной способности, чтобы не забивать канал (Kbit/s)
    --ignore-errors – продолжать копирование и удаление после появления ошибок
    -h – вывод результатов с человеко-читаемом формате
    -A, --acls – сохранение списков ACL
    -H, --hard-links – сохранение жестких ссылок
    -S, --sparse – оптимизировать разреженные файлы
    -x, --one-file-system – не выходить за пределы текущей точки монтирования

ОПИСАНИЕ

Утилита rsync ведет себя во многом подобно rcp с той разницей, что имеет гораздо больше параметров и использует протокол удаленного обновления (remote-update protocol) для значительного ускорения передачи файлов, которые уже существуют в месте назначения.

Благодаря этому протоколу rsync передает только различия между двумя наборами файлов через сетевое соединение, используя эффективный алгоритм поиска контрольных сумм (cheksum-search algorithm), описанный в сопровождающей этот пакет документации.

Вот некоторые дополнительные особенности rsync:

  • поддержка копирования ссылок, файлов устройств, атрибутов владельца, группы и прав
  • параметры исключения путей exclude и exclude-from подобно GNU tar
  • CVS-подобный режим исключения для определенных файлов, которые игнорируются тем же образом, каким их должен игнорировать CVS
  • может прозрачно использовать любую оболочку удаленного доступа, включая rsh или ssh
  • не нуждается в привилегиях суперпользователя root
  • конвейеризация передач файлов для уменьшения задержек
  • поддержка анонимного сервера rsync или сервера rsync с аутентификацией (идеально для зеркалирования)

ГЛАВНОЕ

Относительно rsync существует восемь способов его использования:

  • Для локального копирования файлов, когда ни исходный SRC, ни конечный DEST пути не содержат двоеточия : .
  • Для копирования локальных файлов на удаленный хост, используя программу удаленной оболочки в качестве транспорта (например, rsh или ssh). В этом случае конечный путь DEST содержит одно двоеточие : как разделитель адреса удаленного хоста и пути файловой системы на нем.
  • Для копирования с удаленного хоста в локальные файлы, используя программу удаленной оболочки. Это происходит, если исходный путь SRC содержит двоеточие : .
  • Для копирования с удаленного rsync-сервера в локальные файлы, когда исходный путь SRC содержит либо двойное двоеточие :: , либо он сформирован в виде URL, начинающийся с rsync:// .
  • Для копирования локальных файлов на удаленный rsync-сервер. В этом случае конечный путь DEST содержит :: или является URL'ом вида rsync:// .
  • Для копирования с удаленной машины с использованием удаленной оболочки как транспорта и удаленного rsync-сервера. Это происходит, когда исходный путь SRC содержит разделителем двойное двоеточие :: и установлен параметр --rsh=COMMAND (или -e "COMMAND").
  • Для копирования с локальной машины на удаленную с использованием удаленной оболочки как транспорта и удаленного rsync-сервера. Это происходит, когда конечный путь DEST содержит разделителем двойное двоеточие :: и установлен параметр --rsh=COMMAND (или -e "COMMAND").
  • Для получения списка файлов на удаленной машине. Это происходит, если не указать (оставить пустым) локальный путь.

Обратите внимание, что во всех случаях (кроме запроса списка) как минимум один путь (либо исходный SRC, либо конечный DEST) должен быть локальным.

УСТАНОВКА

За инструкциями по установке обращайтесь в файл README.

Для удаленных передач rsync использует ssh для выполнения коммуникаций с удаленными хостами, поэтому сразу после установки Вы можете использовать rsync относительно любой машины, к которой возможен доступ через ssh (также как и к тем, где запущен rsync-сервер). Но можно сконфигурировать использование другой оболочки, например, rsh или remsh.

Вы можете указать альтернативу rsh либо с помощью параметра командной строки -e, либо с помощью переменной окружения RSYNC_RSH.

Обратите внимание, что rsync должна быть установлена на обоих хостах, которые вовлечены в операцию копирования.

ИСПОЛЬЗОВАНИЕ

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

Возможно, лучший способ объяснить синтаксис - это привести примеры:

rsync *.c foo:src/

Копирует все файлы по шаблону *.c из текущего каталога в каталог src , расположенный на машине foo . Если какой-либо из файлов уже существует, rsync использует протокол удаленного обновления для передачи только различий. За деталями протокола обращайтесь к соответствующей документации.

rsync -avz foo:src/bar /data/tmp

Копирует все файлы рекурсивно из каталога src/bar с машины foo в локальный каталог /data/tmp/bar . Передача файлов происходит в "архивном" режиме, который гарантирует сохранение символьных ссылок, файлов-устройств, атрибутов, разрешений и т.д. Кроме того, используется сжатие для уменьшения объема непосредственно передаваемых данных.

rsync -avz foo:src/bar/ /data/tmp

Слэш в окончании исходного пути меняет поведение при копировании так, что все файлы копируются в каталог /data/tmp без создания дополнительного уровня вложения каталогов. Завершающий исходный путь слэш означает "копировать содержимое этого каталога". Без завершающего слэша - "копировать каталог". В обоих случаях (со слэшем и без него) атрибуты содержащего файлы каталога копируются на содержащий их копии каталог назначения. Другими словами, в каждом последующем примере команды копируют файлы одинаково, включая атрибуты /dest/foo :

rsync -avz /src/foo /dest 
rsync -avz /src/foo/ /dest/foo

Вы также можете использовать rsync в режиме только локального копирования, когда ни один из путей НЕ содержит двоеточия : . Тогда rsync ведет себя как улучшенная команда копирования.

rsync somehost.mydomain.com::

Запрашивает весь список анонимно-доступных модулей на машине somehost.mydomain.com. (Смотрите следующую секцию на предмет деталей.)

ПОДКЛЮЧЕНИЕ К RSYNC-СЕРВЕРУ

rsync можно использовать без обращения к удаленной оболочке как транспорту. В этом случае Вы будете подключаться к удаленному rsync-серверу, запущенному на 873 порту TCP.

Вы можете осуществлять соединение через web-прокси, устанавливая переменную окружения RSYNC_PROXY, равной паре hostname:port, соответствующей Вашему web-прокси. В этом случае Ваш web-прокси должен разрешать проксирование 873 порта.

Использование rsync-сервера аналогично варианту с удаленной оболочкой за исключением:

  • Вы используете двойное двоеточие :: , а не одинарное, как разделитель имени хоста и пути.
  • удаленный сервер может выводить сообщение дня (motd), когда Вы подсоединяетесь.
  • если Вы опускаете указание пути на удаленном сервере, то он показывает список доступных путей.
  • если Вы опускаете локальный путь копирования, то Вам предоставляется список указанных файлов на удаленном сервере.

Некоторые пути на удаленном сервере могут быть доступными только по аутентификации. Тогда вы получите приглашение ввести пароль при подключении. Можно избежать запроса пароля, предварительно выставив переменную RSYNC_PASSWORD в значение с необходимым паролем или указав параметр в командной строке --password-file . Это удобно при использовании rsync в скриптах.

ВНИМАНИЕ: На некоторых системах переменные окружения видимы всеми пользователями. На таких системах рекомендуется использовать --password-file .

ПОДКЛЮЧЕНИЕ К RSYNC-СЕРВЕРУ ЧЕРЕЗ УДАЛЕННУЮ ОБОЛОЧКУ

Иногда бывает полезно при подключении к rsync-серверу передавать файлы, используя удаленную оболочку как транспорт. Это особенно полезно, если нужно подключиться к удаленной машине через ssh (для шифрации или в обход сетевого экрана), но при этом сохранить доступ к функциональным особенностям rsync-сервера (см. ЗАПУСК RSYNC-СЕРВЕРА ПОВЕРХ УДАЛЕННОЙ ОБОЛОЧКИ).

С пользовательской точки зрения этот способ такой же, как и подключение к rsync-серверу, за исключением того, что необходимо явно указать программу удаленной оболочки в командной строке параметром --rsh=COMMAND. (Установка RSYNC_RSH в окружении не активизирует эту функциональность.)

В порядке необходимости различать пользователя удаленной оболочки и пользователя удаленного rsync-сервера Вы можете использовать '-l user' в указании программы оболочки:

rsync -av --rsh="ssh -l ssh-user" rsync-user@host::module[/path] local-path

Здесь "ssh-user" имеет значение на уровне ssh; "rsync-user" проверяется относительно rsyncd.conf на удаленной стороне.

ЗАПУСК RSYNC СЕРВЕРА

rsync-сервер конфигурируется с помощью специального файла, которым по умолчанию выбирается /etc/rsyncd.conf, кроме тех случаев, когда rsync запускается поверх удаленной оболочки и не от root. В этом случае выбирается rsyncd.conf из текущего каталога на удаленной машине (обычно $HOME). Смотрите страницы руководства по rsyncd.conf(5) на предмет деталей.

ЗАПУСК RSYNC-СЕРВЕРА ПОВЕРХ УДАЛЕННОЙ ОБОЛОЧКИ

Некоторые конфигурационные параметры не будут доступны, если удаленный пользователь не root (chroot, setuid/setgid и т.д.). Нет необходимости в конфигурировании inetd или включении порта rsync-сервера в список доступных сетевых служб, если rsync-сервер запущен только через программу удаленной оболочки.

Для запуска rsync-сервера с ssh-ключом ограниченного применения см. соответствующий раздел rsyncd.conf(5).

ПРИМЕРЫ

Далее приведено несколько примеров, как использовать rsync.

Для резервного архивирования домашнего каталога моей жены, который содержит большие MS Word файлы и почтовые папки, я использую задание для cron'а, которое запускается

rsync -Cavz . arvidsjaur:backup

каждую ночь через PPP-соединение для дублирования каталога на мою машину "arvidsjaur".
Для синхронизации моего дерева samba-исходников я использую Makefile-указания:

    get:
    rsync -avuzb --exclude '*~' samba:samba/ .

    put:
    rsync -Cavuzb . samba:samba/

    sync: get put

Это позволяет мне синхронизировать с CVS-каталогом на другом конце соединения. Затем я осуществляю cvs-операции на удаленной машине, что сохраняет мне массу времени, т.к. передача по удаленному cvs-протоколу не очень эффективна.

Я зеркалирую каталог между моими "старым" и "новым" ftp-сайтами командой

rsync -az -e ssh --delete ~ftp/pub/samba/ nimbus:"~ftp/pub/tridge/samba"

это запускается cron'ом несколько раз в день.

СВОДКА ПАРАМЕТРОВ

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

ПАРАМЕТРЫ

rsync использует соглашение о длинных именах параметров GNU. Многие из параметров командной строки имеют два варианта: один - короткий, а другой - длинный. Ниже это отражено в разделении запятой двух вариантов. Некоторые параметры имеют только длинный вариант. Знак '=' для параметров с дополнительным значением необязателен и может быть заменен на пробел.

Спойлер...

ШАБЛОНЫ ИСКЛЮЧЕНИЯ

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

rync строит упорядоченный список на основе параметров --include/--exclude, указанных в командной строке. Rsync проверяет каждое имя файла или каталога относительно соответствия каждому шаблону включения/исключения. В действие вступает первое же совпадение. Если совпавший шаблон исключающий, то соответствующий файл пропускается. Если шаблон включающий, то не пропускается. При отсутствии подходящих шаблонов к имени файла он также не пропускается.

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

Заметьте, что при использовании параметра -r (он подразумевается при -a) каждая отдельная часть каждого пути просматривается сверху вглубь, так что шаблоны включения/исключения применяются рекурсивно к каждой такой части.

Также обратите внимание, что параметры --include и --exclude допускают только по одному шаблону каждый. Для добавления множества шаблонов используйте параметры --include-from и --exclude-from или множество параметров --include и --exclude соответственно.

Шаблоны могут быть заданы в нескольких формах. Правила для них таковы:

  • Если шаблон начинается с /, то он проверяется на соответствие с началом имени файла, в противном случае - относительно завершающей части имени. Это эквивалент начального ^ в регулярных выражениях. Таким образом, "/foo" должен соответствовать файлу с именем "foo" в вершине передаваемого дерева. С другой стороны, "foo" должен соответствовать любому файлу "foo" везде в пределах дерева каталогов, потому что алгоритм применяется рекурсивно сверху вглубь. Он работает так, как если бы каждая составная часть пути была завершением имени файла. Начальный / не превращает шаблон в абсолютный путь.
  • Если шаблон заканчивается на /, то он соответствует только каталогу, не файлу, не ссылке и не устройству.
  • Если шаблон содержит символы подстановки из набора *?[ , то при проверке соответствия используются правила подстановки командной оболочки для имен файлов. В противном случае используется просто соответствие строке.
  • В соответствия двойной звездочки "*" входит слэш, в то время как для одиночной звездочки "" на слэше совпадение заканчивается.
  • Если шаблон содержит слэш / (не считая завершающего слэша) или "" , то такой шаблон проверяется на соответствие полному имени файла, включая любые вышестоящие каталоги. Если шаблон не содержит / или "", то такой шаблон проверяется относительно завершающей части имени файла. Еще раз, помните, что алгоритм применяется рекурсивно, так что "полным именем файла" может оказаться в действительности любая часть пути в глубине иерархии от начального каталога.
  • Если шаблон начинается на "+ " (плюс с последующим пробелом), то это всегда рассматривается как включающий шаблон, даже если указан как часть параметра исключения. Сама часть "+ " не учитывается при проверке на соответствие.
  • Если шаблон начинается на "- " (минус с последующим пробелом), то это всегда рассматривается как исключающий шаблон, даже если он фигурирует как часть параметра включения. Сама часть "- " не учитывается при проверке на соответствие.
  • Если шаблоном указан одиночный восклицательный знак ! , то текущий список включения/исключения сбрасывается удалением всех ранее определенных шаблонов.

Правила +/- наиболее полезны в списках, читаемых из файла, позволяя Вам иметь один общий список, который содержит как исключающие, так и включающие шаблоны.

Если Вы завершите исключающий список указанием --exclude '', то обратите внимание, что из-за рекурсивного характера алгоритм остановится на родительских каталогах и не будет пробовать файлы внутри них за исключением тех случаев, когда Вы явно укажете включать родительские каталоги файлов, которые Вы хотите включить. Для включения всех каталогов используйте --include '/' до --exclude '*'.

Несколько примеров включения/исключения:

  • -exclude "*.o" исключить все имена файлов, соответствующие *.o
  • --exclude "/foo" исключить файл с именем foo в верхнем каталоге
  • -exclude "foo/" исключить любой каталог с именем foo
  • -exclude "/foo/*/bar" исключить любой файл с именем bar в двух уровнях вглубь по иерархии от каталога "foo" в вершине дерева
  • -exclude "/foo/**/bar" исключить любой файл с именем bar в двух и более уровнях вглубь по иерархии от верхнего каталога "foo"
  • -include "/" --include ".c" --exclude "*" включить только каталоги и файлы с Си-исходниками
  • -include "foo/" --include "foo/bar.c" --exclude "" включит только foo/bar.c (каталог foo/ нужно включать явно, иначе он будет пропущен из-за "")

ПАКЕТНЫЙ РЕЖИМ

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

Пакетный режим может использоваться для выполнения обновлений нескольких идентичных систем. Предположим, что имеется дерево каталогов, которое нужно реплицировать на некоторое количество машин. Теперь предположим, что в это исходное дерево внесены изменения, которые нужно распространить на те машины. В порядке реализации этого в пакетном режиме rsync запускается с параметром --write-batch для копирования изменений исходного дерева на одну из конечных машин. Этот параметр заставляет rsync сохранить в набор файлов пакетного обновления (см. ниже) информацию, необходимую для повторения той же операции копирования относительно и других машин. Имя каждого файла в наборе начинается с префикса, указанного пользователем в аргументе для параметра --write-batch. Затем этот набор файлов копируется на каждую из оставшихся удаленных машин, где запускается rsync с параметром --read-batch, тем же префиксом и конечным деревом назначения. Rsync обновляет последнее, используя информацию, сохраненную в наборе файлов пакетного обновления.

Набор состоит из 4 файлов:

  • .rsync_argvs параметры и аргументы командной строки
  • .rsync_flist внутренние метаданные rsync'а о перемещаемых файлах
  • .rsync_csums контрольные суммы
  • .rsync_delta блоки данных для обновления и изменения файлов

Файл .rsync_argvs содержит необходимые команды оболочки, подходящие для обновления конечного дерева каталогов, используя набор файлов пакетного обновления. Это можно использовать при запуске из Bourne-подобной оболочки, дополнительно передавая параметр альтернативного пути который затем используется вместо оригинального. Последнее полезно, если конечный путь отличается от оригинального конечного пути.

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

Примеры:

$ rsync --write-batch=pfx -a /source/dir/ /adest/dir/
$ rcp pfx.rsync_* remote:
$ ssh remote rsync --read-batch=pfx -a /bdest/dir/
# или альтернативно
$ ssh remote ./pfx.rsync_argvs /bdest/dir/

В этом примере rsync используется для обновления /adest/dir/ из /source/dir/ , и информация для повторения этой операции сохраняется в файлах pfx.rsync_* . Эти файлы затем копируются на машину с именем "remote" . После этого rsync запускается на "remote" для обновления /bdest/dir/ тем же способом, что и /adest/dir/ . Последняя строка демонстрирует как можно использовать rsync_argvs для запуска rsync.

Предостережения:

Параметр --read-batch требует аргументом конечное дерево назначения, что значит обновлять идентично тому дереву назначения, которое было использовано для создания набора файлов обновления. Если выясняется различие между конечными деревьями, то обновление немедленно прекращается, оставляя дерево назначения в частично обновленном состоянии. В таком случае rsync может быть использован в своем обычном режиме (не пакетном) для исправления дерева назначения.

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

Параметр -z/--compress не работает в пакетном режиме и выдает ошибку использования. Вместо этого могут быть использованы сторонние средства сжатия для уменьшения размера файлов пакетного обновления при транспортировке к цели.

Параметр -n/--dryrun не работает в пакетном режиме и выдает ошибку выполнения.

См. http://www.ils.unc.edu/i2dsi/unc_rsync+.html на предмет документации и технических описаний.

СИМВОЛИЧЕСКИЕ ССЫЛКИ

Три основных сценария поведения возможны при обнаружении символических ссылок в исходном каталоге.

По умолчанию символические ссылки не передаются совсем. Для любой существующей ссылки в этом случае выдается сообщение "skipping non-regular" ("пропуск нерегулярного").

Если указан параметр --links, то символические ссылки на тот же объект в конечном месте заново пересоздаются. Заметьте, что --archive подразумевает --links.

Если указан параметр --copy-links, то символическая ссылка "раскрывается" копированием того объекта, на который она указывает, вместо создания ссылки.

rsync также различает безопасные и небезопасные символические ссылки. Примером того, где это может быть использовано, может послужить такое зеркалирование web-сайта, при котором желательно быть уверенным, что в зеркальной копии нет символических ссылок на /etc/passwd в доступной всем пользователям части сайта. При использовании --copy-unsafe-links любые ссылки копируются в конечное место в виде файла, на который они указывают. Параметр --safe-links указывает полностью пропускать небезопасные ссылки.

Символические ссылки считаются небезопасными, если они указывают на абсолютный путь (начинающийся с /), если они пустые или если они содержат достаточное количество "..", чтобы выйти за пределы каталога копирования.

ДИАГНОСТИКА

rsync порой производит сообщения об ошибках, которые могут показаться немного загадочными. Одним из таких сообщений является "protocol version mismatch - is your shell clean?" ("несоответствие версий - ваша оболочка в порядке?").

Это сообщение обычно является следствием того, что Ваши запускающие скрипты или возможности удаленной оболочки производят лишний мусор в потоке, который rsync использует в качестве транспорта. Способ диагностирования этой проблемы следующий:

ssh remotehost /bin/true > out.dat

и посмотреть в out.dat . Если все работает корректно, то этот файл должен быть нулевого размера. Если Вы получаете вышеупомянутое сообщение от rsync, то Вы, возможно, найдете какие-то текст или данные в файле out.dat . Взгляните на его содержимое и по нему проверьте то, что может его производить. Наиболее общая причина - это неправильно настроенные скрипты запуска (такие как .cshrc или .profile), которые содержат выражения, выдающие сообщения при не интерактивном входе в систему.

Если Вы имеете трудности с отладкой шаблонов включения и(или) исключения, то попробуйте указать параметр -vv. При таком уровне подробностей rsync будет показывать, почему включен или исключен каждый отдельный файл.

КОДЫ ЗАВЕРШЕНИЯ

0 Успешно
1 Синтаксическая ошибка или ошибка использования
2 Несовместимость протоколов
3 Ошибки выбора входных/выходных файлов и каталогов
4 Запрошенное действие не поддерживается: была сделана попытка работы с 64-битными файлами на платформе, которая их не поддерживает; или указан параметр, который поддерживается только клиентом и не поддерживается сервером.
5 Ошибка при попытке начать работать по протоколу клиент-сервер
10 Ошибка сокета ввода/вывода
11 Ошибка ввода/вывода файла
12 Ошибка в потоке данных rsync-протокола
13 Ошибки при диагностике
14 Ошибка в IPC-коде
20 Получены сигналы или SIGUSR1, или SIGINT
21 Вызов waitpid() возвращает ошибку
22 Error allocating core memory buffers
23 Незавершенная передача из-за ошибки
24 Незавершенная передача из-за пропадания исходного файла
30 Время ожидания при передаче/приеме данных

ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

CVSIGNORE
Переменная окружения CVSIGNORE дополняет исключающие шаблоны из файла .cvsignore. За деталями см. параметр --cvs-exclude.
RSYNC_RSH
Переменная окружения RSYNC_RSH позволяет переопределить программу удаленной оболочки, используемую rsync'ом как транспорт. Параметры командной строки для оболочки указываются после имени программы, также как и для параметра -e.
RSYNC_PROXY
Переменная окружения RSYNC_PROXY позволяет указать rsync-клиенту использовать web-прокси для подключения к rsync-серверу. Вы должны указать прокси в виде пары hostname:port .
RSYNC_PASSWORD
Установка значения RSYNC_PASSWORD позволяет осуществить rsync-соединение к rsync-серверу без вмешательства пользователя для ввода пароля. Заметьте, что это не тоже самое, что и пароль для транспортной оболочки, например, ssh.
USER или LOGNAME
Переменные окружения USER или LOGNAME используются для определения пользователя по умолчанию, имя которого предоставляется rsync-серверу для аутентификации.
HOME
Переменная HOME используется для поиска пользовательского файла .cvsignore.

ФАЙЛЫ

/etc/rsyncd.conf или rsyncd.conf

СМ. ТАКЖЕ

rsyncd.conf(5)

ДИАГНОСТИКА

ОШИБКИ

Информация о времени передается как unix-структура time_t .

При передаче на файловую систему FAT rsync может скопировать не измененные файлы. См. комментарий к параметру --modify-window.

Права на файлы, устройства и т.п. передаются как изначальные числовые значения.

См. также комментарии к параметру --delete.

Пожалуйста, сообщайте об ошибках! См. web-сайт http://rsync.samba.org/

CREDITS

rsync распространяется на условиях GPL. См. файл COPYING на предмет деталей.

Web-сайт доступен по адресу http://rsync.samba.org/. Сайт содержит в том числе FAQ-O-Matic, который отвечает на многие незатронутые в этом руководстве вопросы.

Первичный ftp-сервер для rsync ftp://rsync.samba.org/pub/rsync.

Нам было бы приятно услышать от Вас, что Вам понравилась наша программа.

Эта программа использует превосходную библиотеку сжатия zlib, написанную Jean-loup Gailly и Mark Adler.

БЛАГОДАРНОСТИ

Благодарим Richard Brent, Brendan Mackay, Bill Waite, Stephen Rothwell и David Bell за полезные предложения, патчи и тестирование rsync. Если мы пропустили некоторых людей, то пусть примут наши извинения.

Специальные благодарности: David Dykstra, Jos Backus, Sebastian Krahmer.

АВТОР

rsync была написана Andrew Tridgell tridge@samba.org and Paul Mackerras.

Сейчас rsync сопровождается Martin Pool mbp@samba.org.

Списки рассылок для поддержки и разработки доступны по адресу http://lists.samba.org

Если Вы подозреваете, что нашли уязвимость в rsync, пожалуйста, известите Martin Pool и Andrew Tridgell. Для других вопросов пользуйтесь списком рассылки.

ПЕРЕВОД

Sergey Golovin svgol@mail.ru

Aleksandr Blokhin sass@altlinux.ru

Проверка существования пользователя:

grep "username:" /etc/passwd >/dev/null
if [ $? -ne 0 ]; then
echo 'No username found'
fi