rsync

title: rsync(1)

text:
# rsync(1)

## НАЗВАНИЕ
rsync - более быстрая и гибкая замена rcp

## СИНТАКСИС
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST

rsync [OPTION]... [USER@]HOST:SRC DEST

rsync [OPTION]... SRC [SRC]... DEST

rsync [OPTION]... [USER@]HOST::SRC [DEST]

rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST

rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

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

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

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

o

поддержка копирования ссылок, файлов устройств, атрибутов владельца, группы и прав

o

параметры исключения путей exclude и exclude-from подобно GNU tar

o

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

o

может прозрачно использовать любую оболочку удаленного доступа, включая rsh или ssh

o

не нуждается в привилегиях суперпользователя root

o

конвейеризация передач файлов для уменьшения задержек

o

поддержка анонимного сервера rsync или сервера rsync с аутентификацией (идеально для зеркалирования)

## ГЛАВНОЕ
Относительно rsync существует восемь способов его использования:

o

Для локального копирования файлов, когда ни исходный SRC, ни конечный DEST пути не содержат двоеточия : .

o

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

o

Для копирования с удаленного хоста в локальные файлы, используя программу удаленной оболочки. Это происходит, если исходный путь SRC содержит двоеточие : .

o

Для копирования с удаленного rsync-сервера в локальные файлы, когда исходный путь SRC содержит либо двойное двоеточие :: , либо он сформирован в виде URL, начинающийся с rsync:// .

o

Для копирования локальных файлов на удаленный rsync-сервер. В этом случае конечный путь DEST содержит :: или является URL'ом вида rsync:// .

o

Для копирования с удаленной машины с использованием удаленной оболочки как транспорта и удаленного rsync-сервера. Это происходит, когда исходный путь SRC содержит разделителем двойное двоеточие :: и установлен параметр --rsh=COMMAND (или -e "COMMAND").

o

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

o

Для получения списка файлов на удаленной машине. Это происходит, если не указать (оставить пустым) локальный путь.

Обратите внимание, что во всех случаях (кроме запроса списка) как минимум один путь (либо исходный 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-сервера аналогично варианту с удаленной оболочкой за исключением:

o

Вы используете двойное двоеточие :: , а не одинарное, как разделитель имени хоста и пути.

o

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

o

если Вы опускаете указание пути на удаленном сервере, то он показывает список доступных путей.

o

если Вы опускаете локальный путь копирования, то Вам предоставляется список указанных файлов на удаленном сервере.

Некоторые пути на удаленном сервере могут быть доступными только по аутентификации. Тогда вы получите приглашение ввести пароль при подключении. Можно избежать запроса пароля, предварительно выставив переменную 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. Пожалуйста, обращайтесь к более детальному описанию чуть ниже.

```

```

-v, --verbose

увеличить уровень подробностей

-q, --quiet

уменьшить уровень подробностей

-c, --checksum

проверять контрольные суммы

-a, --archive

архивный режим, эквивалент для -rlptgoD

-r, --recursive

рекурсивно входить в подкаталоги

--no-recursive

отключить действие --recursive

--no-implied-dirs

не передавать затрагиваемые параметром -R каталоги

-R, --relative

использовать относительные пути

-b, --backup

создавать резервную копию (см. --suffix и --backup-dir)

--backup-dir

создавать резервную копию в этом каталоге

--suffix=SUFFIX

суффикс для резервной копии (по умолчанию ~ в отсутствие --backup-dir)

-u, --update

только обновление (не переписывает более новые файлы)

-l, --links

копировать символьные ссылки как символьные ссылки

-L, --copy-links

копировать то, на что ссылаются символьные ссылки

--copy-unsafe-links

копировать ccылки за пределы исходного дерева каталогов

--safe-links

не копировать любые символьные ссылки, которые ссылаются за пределы дерева каталогов назначения

-H, --hard-links

сохранять жесткие ссылки

-p, --perms

сохранять разрешения

-o, --owner

сохранять владельца (только root)

-g, --group

сохранять группу

-D, --devices

сохранять файлы устройств (только root)

-t, --times

сохранять время

-S, --sparse

эффективно обработать фрагментированные файлы

-n, --dry-run

показать, что скопируется

-W, --whole-file

копировать весь файл без rsync-алгоритма

--no-whole-file

отключить --whole-file

-x, --one-file-system

не выходить за пределы файловой системы

-B, --block-size=SIZE

размер блока контрольных сумм (по умолчанию 700)

-e, --rsh=COMMAND

указывает замену программу удаленной оболочки

--rsync-path=PATH

указывает путь к rsync на удаленной машине

--existing

только обновить те файлы, которые уже существуют

--ignore-existing

пропускать те файлы, которые уже существуют на приемной стороне

--delete

удалять файлы, которых нет на передающей стороне

--delete-excluded

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

--delete-after

удалять после копирования, а не до него

--ignore-errors

удалить даже при наличии ошибок ввода/вывода

--max-delete=NUM

не удалять больше, чем NUM файлов

--partial

сохранять частично переданные файлы

--force

принудительно удалять даже не пустые каталоги

--numeric-ids

не преобразовывать значения uid/gid по именам пользователя/группы

--timeout=TIME

установить время ожидания ввода/вывода в секундах

-I, --ignore-times

отключить "быструю проверку" файлов по времени модификации и размеру

--size-only

отключить проверку времени модификации при "быстрой проверке" файлов (проверять только размер)

--modify-window=NUM

сравнивать времена модификации файлов с пониженной точностью

-T, --temp-dir=DIR

каталог для временных файлов

--compare-dest=DIR

также сравнивать принятые файлы относительно каталога DIR

--link-dest=DIR

создавать жесткие ссылки в каталоге DIR на не изменявшиеся файлы

-P

эквивалент для --partial --progress

-z, --compress

сжимать поток передачи данных

-C, --cvs-exclude

автоматический пропуск файлов тем же способом, что и в cvs

--exclude=PATTERN

исключить файлы, соответствующие шаблону PATTERN

--exclude-from=FILE

шаблоны исключения брать из файла FILE

--include=PATTERN

не исключать файлы по шаблону PATTERN

--include-from=FILE

не исключать файлы по шаблонам в файле FILE

--files-from=FILE

читать имена файлов для копирования из файла FILE

-0, --from0

нуль - разделитель всех списков файлов

--version

вывести номер версии

--daemon

запустить как rsync-демон

--no-detach

не отключаться от родительского процесса

--address=ADDRESS

слушать на указанном адресе

--config=FILE

указать другой rsyncd.conf файл

--port=PORT

слушать другой порт

--blocking-io

использовать блочный ввод/вывод для удаленной оболочки

--no-blocking-io

отключить --blocking-io

--stats

выдавать статистику по передаче файлов

--progress

показать % выполнения во время передачи

--log-format=FORMAT

формат лог-файла передач

--password-file=FILE

читать пароль из файла FILE

--bwlimit=KBPS

ограничить скорость ввода/вывода, Кбайт/с

--read-batch=PREFIX

для пакетного режима читать набор файлов с префиксом PREFIX

--write-batch=PREFIX

для пакетного режима записать набор файлов с префиксом PREFIX

-h, --help

показать помощь

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

-h, --help

Печатает короткую подсказку, описывающую доступные параметры rsync

--version

Печатает номер версии rsync и завершается

-v, --verbose

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

-q, --quiet

Уменьшает сумму подробностей о передаче, преимущественно, сообщения от удаленного сервера. Этот параметр полезен при вызове из cron.

-I, --ignore-times

Обычно rsync пропускает файлы, чей размер и время модификации идентичны. Этот параметр отключает такое поведение "быстрой проверки".

--size-only

Обычно rsync пропускает файлы, чей размер и время модификации идентичны. С --size-only файлы будут пропускаться, если их размер одинаков, независимо от времени модификации. Это полезно при использовании rsync сразу после работы другой зеркалирующей системы, которая не сохранила точно времена.

--modify-window

При сравнение двух меток времени rsync рассматривает эти метки равными, если они расходятся в пределах значения modify_window. Обычно это значение ноль, но Вы можете найти полезным установку его в большую величину в некоторых случаях. На практике, при передаче на файловую систему Windows FAT, которая не может представлять время с точностью до секунды, --modify_window=1 весьма полезна.

-c, --checksum

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

-a, --archive

Эквивалентно набору -rlptgoD. Это быстрый способ указать, что Вам нужна рекурсия и Вы хотите сохранить почти все.

Однако заметьте, что -a не сохраняет жесткие ссылки, потому что поиск многосвязных файлов дорог. Вам придется отдельно указывать -H.

-r, --recursive

Указывает rsync копировать каталоги рекурсивно. Без указания этого rsync совсем не будет копировать каталоги.

-R, --relative

Использовать относительные пути. Это значит, что посылаются полные пути, указанные в командной строке, а не последние части имен файлов. На практике это полезно, когда Вам нужно послать несколько различных каталогов за раз. Например, если указать команду:

```
rsync foo/bar/foo.c remote:/tmp/
```

то она создаст файл foo.c в /tmp на удаленной машине. Если вместо этого указать

```
rsync -R foo/bar/foo.c remote:/tmp/
```

то файл создастся в /tmp/foo/bar/foo.c на удаленной машине - полный путь сохранится.

--no-relative

Выключает параметр --relative. Это нужно только если Вы хотите использовать параметр --files-from без подразумеваемого им поведения с включенным параметром --relative.

--no-implied-dirs

В комбинации с --relative все затрагиваемые каталоги в каждом пути явно не копируются как часть процесса передачи. Это делает передачу более оптимальной и также позволяет иметь непарные (см. пример ниже) символьные ссылки в подразумеваемых передачей путях. Например, если передается файл "/path/foo/file" с параметром -R, то по умолчанию rsync следит, чтобы "/path" и "/path/foo" в точности соответствовали каталогам/ссылкам на приемной стороне. Параметр --no-implied-dirs позволяет игнорировать несоответствие, когда "/path" - реальный каталог на одной стороне и символьная ссылка на другой. rsync не пытается с этим параметром что-либо менять в этом случае.

-b, --backup

С этим параметром существовавшие до передачи файлы на приемной стороне переименовываются, как только соответствующий файл передан или удален. Вы можете контролировать, куда перемещаются файлы и какой суффикс (если нужно) добавляется к имени, используя параметры --backup-dir и --suffix.

--backup-dir=DIR

В комбинации с --backup указывает каталог, куда сохранять резервные копии. Это весьма полезно для инкрементального резервирования. Вы можете дополнительно указать суффикс с помощью --suffix (иначе резервные копии файлов будут сохранять свои исходные имена).

--suffix=SUFFIX

Этот параметр позволяет указать суффикс, отличный от суффикса по умолчанию, для резервных копий файлов при установленном --backup (-b). По умолчанию этот суффикс установлен в ~ без установки --backup-dir, установка которого сбрасывает этот суффикс в пустую строку.

-u, --update

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

-l, --links

Если обнаружена символьная ссылка, то она же создается и на приемной стороне.

-L, --copy-links

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

--copy-unsafe-links

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

--safe-links

Указывает игнорировать любую символьную ссылку, которая относится к объекту за пределами конечного дерева каталогов. Все абсолютные ссылки также пропускаются. Использование этого параметра в комбинации с --relative может дать неожиданные результаты.

-H, --hard-links

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

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

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

-W, --whole-file

Этот параметр отключает дифференциальный алгоритм rsync'а и с ним весь файл передается как есть, целиком. Передача может происходить быстрее с этим параметром, если полоса пропускания между исходной и конечной машинами шире, чем полоса пропускания доступа к диску (особенно, если "диск" в действительности сетевая файловая система). Этот параметр включен по умолчанию, если и исходная, и конечная цели находятся локально.

--no-whole-file

Выключает действие параметра --whole-file, если последний включен по умолчанию.

-p, --perms

Копирует все права на приемную сторону точь в точь с оригиналом.

Без указания этого параметра каждый новый файл получает те права доступа, что имеет исходный с учетом umask, действующей на приемной стороне, в то время как все другие (включая обновляемые) сохраняют свои уже существующие разрешения (это то же поведение, что имеют другие утилиты копирования файлов, такие как cp).

-o, --owner

Копирует атрибуты владельца на приемную сторону в точности с оригиналом. На большинстве систем только супер-пользователь имеет право устанавливать владельца файла. Нужно заметить, что если удаленный демон действует в chroot-окружении, то подразумевается наличие параметра --numeric-ids, потому что на удаленной стороне в этом случае нет доступа к именам пользователей в /etc/passwd.

-g, --group

Копирует атрибуты группы на приемную сторону в точности с оригиналом. Если удаленная сторона не действует из-под супер-пользователя, то сохранятся только те значения групп, членом которых является пользователь приемной стороны (имеет значение имя группы, а не ее id).

-D, --devices

Указывает передавать информацию о символьных и блочных устройствах для пересоздания их на приемной стороне. Доступно только супер-пользователю.

-t, --times

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

-n, --dry-run

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

-S, --sparse

Пытаться эффективнее обработать фрагментацию файлов, чтобы сэкономить пространство на приемной стороне. ЗАМЕЧАНИЕ: Не используйте этот параметр, если в точке назначения имеется файловая система "tmpfs" Solaris. Не представляется возможным правильно управлять поиском среди "дырок" (null regions), что заканчивается повреждением файлов.

-x, --one-file-system

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

--existing

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

--ignore-existing

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

--max-delete=NUM

Не удалять больше, чем NUM файлов и каталогов. Это полезно при зеркалировании очень массивных деревьев каталогов для предохранения от неприятностей.

--delete

Удалять любые файлы на приемной стороне, которых нет на передающей. Файлы, исключенные из передачи, исключаются также и из процесса удаления, если не указана --delete-excluded.

Этот параметр не оказывает никакого влияния, если не включено рекурсивное копирование каталогов.

Этот параметр может быть опасным при неправильном использовании! Очень хорошим правилом может стать использование сначала холостого выполнения rsync (-n) для просмотра того, что за файлы могут удалиться и нет ли среди них важных.

При возникновении каких-либо ошибок ввода-вывода на передающей стороне удаление любых файлов на приемной автоматически отключается. Это предотвращает от массивного удаления файлов на приемной стороне из-за временных ошибок файловой системы (например, NFS) на передающей. Это поведение можно отключить параметром --ignore-errors.

--delete-excluded

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

--delete-after

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

--ignore-errors

При удалении (--delete) форсирует процесс и игнорирует любые ошибки, даже ошибки ввода-вывода.

--force

Удалять каталоги при замене их не-каталогами, даже если они не пусты. Уместен только без --delete, потому что удаление происходит только каталогов одного уровня. Требует --recursive (который подразумевается, если -a) для значимого эффекта.

-B, --block-size=BLOCKSIZE

Регулирует размер блока, используемый rsync-алгоритмом. См. техническое описание на предмет деталей.

-e, --rsh=COMMAND

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

Если этот параметр используется с указанием пути вида [user@]host::module/path, то программа удаленной оболочки COMMAND будет использована для запуска rsync-сервера на удаленной стороне, а все данные будут передаваться через соединение удаленной оболочки, а не напрямую через соединение с rsync-сервером на "том" конце. См. раздел "ПОДКЛЮЧЕНИЕ К RSYNC-СЕРВЕРУ ЧЕРЕЗ УДАЛЕННУЮ ОБОЛОЧКУ".

Аргументы командной строки для COMMAND разрешено указывать в форме, при которой COMMAND представляется для rsync в виде одного аргумента. Например:

-e "ssh -p 2234"

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

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

См. также --blocking-io, на которую влияет установка параметра -e.

--rsync-path=PATH

Указывает путь к копии rsync на удаленной стороне. Полезен, если rsync'а нет в Ваших путях поиска. Заметьте, что здесь указывается полный путь к программе, а не каталог, где она лежит.

-C, --cvs-exclude

Этим параметром Вы исключаете широкий диапазон файлов, которые Вы не хотите передавать между системами. При этом используется тот же алгоритм, что использует CVS для определения игнорируемых файлов.

Список исключений изначально включает в себя:

RCS/ SCCS/ CVS/ .svn/ CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* *.old *.bak *.BAK *.orig *.rej .del-* *.a *.o *.obj *.so *.Z *.elc *.ln core

затем файлы, перечисленные в $HOME/.cvsignore , добавляются к первоначальному списку, а также любые, перечисленные в переменной окружения CVSIGNORE (разделенные пробелами).

В заключение, любой файл пропускается, если в том же каталоге есть файл .cvsignore, в котором есть соответствующий файлу шаблон. См. руководство по cvs(1) для дальнейшей информации.

--exclude=PATTERN

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

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

См. секцию "ШАБЛОНЫ ИСКЛЮЧЕНИЯ" за информацией о синтаксисе для этого параметра.

--exclude-file=FILE

Подобен параметру --exclude, но в отличие от него использует шаблоны исключаемых фалов, перечисленные в файле FILE. Пустые строки вместе со строками, начинающимися с ';' или '#', игнорируются. Если FILE указан как -, то список шаблонов читается со стандартного ввода.

--include=PATTERN

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

См. секцию "ШАБЛОНЫ ИСКЛЮЧЕНИЯ" за информацией о синтаксисе для этого параметра.

--include-from=FILE

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

--files-from=FILE

Позволяет задать точный список файлов для передачи (который будет прочитан из указанного FILE или из стандартного ввода, если указан -). Это также меняет поведение rsync по умолчанию в целях облегчения процесса передачи заданных файлов и каталогов. Например, по умолчанию включается использование опции --relative (для отключения этого используйте --no-relative), на принимающей стороне создаются все указанные в списке каталоги (а не пропускаются безгласно, как если бы не использовалась опция -r), а поведение -a (--archive) не подразумевает наличие -r (--recursive) - его, при необходимости, нужно указывать явно.

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

rsync -a --files-from=/tmp/foo /usr remote:/backup

Если /tmp/foo содержит строку bin (или даже "/bin"), каталог /usr/bin будет создан как /backup/bin на удаленной машине (но содержимое /usr/bin не должно передаваться, кроме тех случаев, когда объекты явно указаны в /tmp/foo, или в случае указания параметра -r). Также учитывайте, что эффект от --relative (включенный по умолчанию) касается копирования путей, прочитанных из файла, -- он не принуждает копировать полностью указанный исходный путь (/usr в примере).

В дополнение, --files-from файл может быть прочитан с удаленной машины, а не локально, если указать перед именем файла "host:" (это должно соответствовать одному из концов передачи). Для краткости, можно указывать только префикс ":" для обозначения удаленного участника копирования. Например:

rsync -a --files-from=:/path/file-list src:/ /tmp/copy

эта команда должна скопировать все файлы указанные в файле /path/file-list, который расположен на удаленной машине "src".

-0, --from0

Говорит rsync, что имена файлов, читаемые извне, заканчиваются символом '\0', не NL, CR или CR+LF. Это касается параметров --exclude-from, --include-from, and --files-from.

-T, --temp-dir=DIR

Инструктирует использовать DIR как каталог временных копий передаваемых файлов на принимающей стороне. По умолчанию временные файлы создаются в каталоге назначения.

--compare-dest=DIR

Инструктирует использовать DIR на машине назначения как каталог, относительно содержимого которого осуществляется сравнение во время процесса передачи при условии отсутствия файлов в каталоге назначения. Это полезно для осуществления передачи в новое место, оставляя существующие файлы неприкосновенными, а затем перенося и очищая, когда все файлы были переданы (например, при перемещении каталогов в новое место и удалении старого, хотя при этом пропускаются не изменявшиеся файлы; см. также --link-dest).

Прим. переводчика: Существование этого параметра обусловлено необходимостью обновлять, например, дерево с взаимозависимыми файлами. В этом случае нежелательно осуществлять копирование на пофайловой основе. Параметр --compare-dest позволяет указывать временный каталог назначения, куда и копируются передаваемые файлы. По окончании процесса передачи rsync переименовывает оригинальное дерево назначения, затем переименовывает временный каталог DIR в оригинальный и, наконец, удаляет переименованный на первом шаге оригинальный каталог со "старыми" файлами.

Этот параметр повышает полезность --partial, потому что частично переданные файлы будут оставаться в новом временном каталоге до тех пор, пока не окажутся целиком на месте. Если DIR задан как относительный путь, то он соотносится к каталогу назначения.

--link-dest=DIR

Ведет себя также, как и --compare-dest, но также создает жесткие ссылки в DIR на не изменявшиеся файлы в каталоге назначения. Файлы с измененными правами и владением не подвергаются этому. Как и в случае --compare-dest, если DIR задается относительным именем, то и действия осуществляются относительно каталога назначения.

-z, --compress

С этим параметром rsync сжимает все передаваемые данные файлов. Это полезно на медленных линиях. Метод сжатия, используемый при этом, тот же, что реализует gzip.

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

--numeric-ids

Вместо имен групп и пользователей посылаются их числовые id и ставятся в соответствие друг другу на обоих концах.

По умолчанию rsync использует имена групп и пользователей для определения владельца файлов. Специальные uid 0 и gid 0 никогда не отображаются через имена пользователей/групп, даже если не указана --numeric-ids.

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

--timeout=TIMEOUT

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

--daemon

Запускает rsync как демон. Демон доступен для клиентов через синтаксис host::module или rsync://host/module .

Если стандартным вводом является сокет, то rsync полагает условием запуск от inetd, иначе он отключается от текущего терминала и становится фоновым процессом-демоном. Демон читает конфигурационный файл (rsyncd.conf) на каждое соединение от клиентов и соответственно отвечает на их запросы.

--no-detach

При запуске демоном этот параметр инструктирует rsync не отключаться от терминала и стать фоновым процессом. Он требуется при запуске службой под Cygwin, и также может быть полезен, если rsync находится под наблюдением таких программ как daemontools или AIX's System Resource Controller. --no-detach также рекомендуется к применению при запуске rsync под отладчиком. Этот параметр не имеет никакого эффекта при запуске от inetd или sshd.

--address

По умолчанию rsync использует групповой адрес 0.0.0.0, когда запускается как демон с --daemon или при подключениях к rsync-серверу. --address позволяет Вам указать точный IP-адрес (или хост-имя) для этого. Это делает возможным виртуальный хостинг в сочетании с --config.

--config=FILE

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

--port=PORT

Указывает альтернативный номер TCP порта для работы, а не 873 по умолчанию.

--blocking-io

Указывает использовать блокирующий ввод-вывод при запуске поверх программы-транспорта удаленной оболочки. Если этой программой являются либо rsh, либо remsh, то rsync использует блокирующий ввод-вывод по умолчанию, иначе по умолчанию используется неблокирующий ввод-вывод. (Заметьте, что ssh предпочитает неблокирующий.)

--no-blocking-io

Отключает действие --blocking-io, когда оно активировано по умолчанию.

--log-format=FORMAT

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

--stats

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

--partial

По умолчанию rsync будет удалять все частично-переданные файлы в случае прерывания передачи. В некоторых случаях более желательно сохранять такие файлы. Используя параметр --partial, можно указать rsync сохранять частично-переданный файл, что может ускорить передачу всего файла при последовательном повторении таких передач.

--progress

Указывает выводить rsync информацию о ходе передачи. Скучающему пользователю будет на что посмотреть. Подразумевает наличие --verbose без увеличения подробностей.

-P

Эквивалент для --partial --progress . Автор нашел для себя частым использование этой комбинации, поэтому для облегчения ввел отдельный параметр.

--password-file

Позволяет Вам предоставить пароль для доступа к rsync-серверу, сохранив его в файле. Заметьте, что этот параметр полезен только при использовании для доступа к rsync-серверу встроенного rsync-транспорта, при использовании программы удаленной оболочки он бесполезен. Файл не должен быть всем доступен на чтение. Он должен содержать только пароль, в одну строчку.

--bwlimit=KBPS

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

--write-batch=PREFIX

Генерирует набор файлов, которые могут быть переданы в пакетном обновлении. Каждое имя файла в наборе начинается с PREFIX. См. раздел "ПАКЕТНЫЙ РЕЖИМ" за деталями.

--read-batch=PREFIX

Применяет ранее сгенерированный пакет изменений, используя тот набор файлов, чьи имена начинаются с PREFIX. См. раздел "ПАКЕТНЫЙ РЕЖИМ" за деталями.

## ШАБЛОНЫ ИСКЛЮЧЕНИЯ
Шаблоны исключения и включения, будучи заданными, позволяют гибко выделять, какие файлы должны передаваться, а какие должны быть пропущены.

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

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

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

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

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

o

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

o

Если шаблон заканчивается на /, то он соответствует только каталогу, не файлу, не ссылке и не устройству.

o

Если шаблон содержит символы подстановки из набора *?[ , то при проверке соответствия используются правила подстановки командной оболочки для имен файлов. В противном случае используется просто соответствие строке.

o

В соответствия двойной звездочки "**" входит слэш, в то время как для одиночной звездочки "*" на слэше совпадение заканчивается.

o

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

o

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

o

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

o

Если шаблоном указан одиночный восклицательный знак ! , то текущий список включения/исключения сбрасывается удалением всех ранее определенных шаблонов.

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

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

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

o

--exclude "*.o" исключить все имена файлов, соответствующие *.o

o

--exclude "/foo" исключить файл с именем foo в верхнем каталоге

o

--exclude "foo/" исключить любой каталог с именем foo

o

--exclude "/foo/*/bar" исключить любой файл с именем bar в двух уровнях вглубь по иерархии от каталога "foo" в вершине дерева

o

--exclude "/foo/**/bar" исключить любой файл с именем bar в двух и более уровнях вглубь по иерархии от верхнего каталога "foo"

o

--include "*/" --include "*.c" --exclude "*" включить только каталоги и файлы с Си-исходниками

o

--include "foo/" --include "foo/bar.c" --exclude "*" включит только foo/bar.c (каталог foo/ нужно включать явно, иначе он будет пропущен из-за "*")

## ПАКЕТНЫЙ РЕЖИМ
Заметьте: Пакетный режим должен рассматриваться как экспериментальный в этой версии rsync. Интерфейс и дизайн могут измениться, прежде чем его реализация стабилизируется.

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

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

o

<prefix>.rsync_argvs параметры и аргументы командной строки

o

<prefix>.rsync_flist внутренние метаданные rsync'а о перемещаемых файлах

o

<prefix>.rsync_csums контрольные суммы

o

<prefix>.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>


scp

package: man-pages-ru-extra

title: scp(1)

text:
# scp(1)

## НАЗВАНИЕ
scp - безопасное копирование (программа удаленного копирования файлов)

## СИНТАКСИС
scp [-pqrvC1246] [-F ssh_config] [-S programm] [-P port] [-c cipher] [-i identity_file] [-l limit] [-o ssh_option] [[user@]host1:]file1 [...] [[user@]host2:]file2

## ОПИСАНИЕ
scp копирует файлы между машинами в сети. scp использует ssh(1) для передачи файлов; использует ту же самую аутентификацию и предоставляет ту же самую защиту что и ssh(1). В отличие от rcp(1), scp запросит пароль или ключевую фразу, если это необходимо для аутентификации.

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

Имеются следующие опции:

-с cipher

Указывает шифр, используемый для шифрования передачи данных. Эта опция передается напрямую к ssh(1).

-i identity_file

Указывает файл, из которого будет прочитана идентификационная информация (private key) для RSA-аутентификации. Эта опция передается напрямую к ssh(1).

-l limit

Ограничивает пропускную способность заданную в Kbit/сек.

-p

Сохраняет время модификации, время и права доступа и как у файла-оригинала.

-r

Рекурсивное копирование дерева каталогов с подкаталогами.

-v

Режим отладки. Принуждает scp и ssh(1) выводить отладочную информацию об их работе. Это полезно для отладки соединения, аутентификации и проблем конфигурации.

-B

Выбор пакетного режима (предотвращает запрос пароля или ключевой фразы).

-q

Отключает индикатор прогресса.

-C

Включает сжатие. Передает ssh(1) флаг -C для включения сжатия.

-F ssh_config

Указывает альтернативный файл настроек для ssh. Эта опция передаётся напрямую к ssh(1).

-P port

Определяет порт для связи с удаленной машиной. Имейте в виду, что эта опция пишется с заглавной "Р", так как -p зарезервировано сохранения времени модификации, времени и прав доступа и как у файла-оригинала в rcp(1).

-S program

Название программы (program), используемой для зашифрованного подключения. Программа должна понимать опции ssh(1).

-о ssh_option

Может быть использована для передачи опций ssh(1) в формате, используемом в ssh_config(5). Полезно для передачи опций не имеющих специальных флагов командной строки scp.

-1 Принуждает scp использовать протокол версии 1.

-2 Принуждает scp использовать протокол версии 2.

-4

Принуждает scp использовать только IPv4 адреса.

-6

Принуждает scp использовать только IPv6 адреса.

## ДИАГНОСТИКА
scp завершает работу с сигналом выхода равным 0, в случае успешного завершения, или с >0 в случае обнаружения ошибки.

## АВТОРЫ
Timo Rinne <tri@iki.fi> и Tatu Ylonen <ylo@cs.hut.fi>

## ПЕРЕВОД
Перевод с английского: Александр Блохин <sass@altlinux.ru>

## ИСТОРИЯ
scp создана на базе программы rcp(1) с использованием исходного кода BSD из Regents of the University of California.

## СМОТРИ ТАКЖЕ
rcp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh_config(5), sshd(8)


sed

title: sed(1)

summary: потоковый редактор (Stream EDitor)

text:
# sed(1)

## НАЗВАНИЕ
sed - потоковый редактор (Stream EDitor)

## СИНТАКСИС

```
sed [-n] [-V] [--quiet] [--silent] [--version] [--help]

    [-e script] [--expression=script]

    [-f script-file] [--file=script-file]

    [script-if-no-other-script]

    [file...]
```

## ОПИСАНИЕ
Sed это редактор потока. Потоковый редактор используется для выполнения основных преобразований с текстом на входном потоке (файл или ввод из конвейера). Тогда как некоторые схожие редакторы (такие как ed) допускают комплексное редактирование, sed работает совершая лишь одно действие над вводом за проход и следовательно более эффективен. Благодаря этому sed в состоянии фильтровать текст в конвейере, что особо выгодно отличает его от редакторов других типов.

## ОПЦИИ
Sed может быть вызван со следующими параметрами командной строки:

-V

--version

Сообщает версию запущенного sed, версию лицензионного соглашения, под которым он распространяется и завершает работу.

-h

--help

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

-n

--quiet

--silent

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

-e сценарий

--expression=сценарий

Добавляет команды в сценарий к набору выполняемых команд при обработке ввода.

-i[СУФФИКС], --in-place[=СУФФИКС]

Редактирует файлы в указанном месте (делая копии, если задано расширение).

-f сценарий

--file=сценарий

Добавляет команды содержащиеся в сценарии к набору выполняемых команд при обработке ввода.

Если в командной строке не указан параметр -e, -f, --expressiln или --file, то первый же заданный в командной строке аргумент не-опция будет считаться сценарием для выполнения.

Если какие-либо параметры командной строки остаются после вышеупомянутой обработки, то они интерпретируются как имена входных файлов подлежащих обработке. Имя файла - соотносится со стандартным входным потоком. Стандартный ввод обрабатывается в том случае, если никаких имён файлов не определено.

## СИНТАКСИС КОМАНД
Это лишь краткое резюме команд sed, призванное служить подсказкой для тех, кто уже знаком с sed; для более полного пояснения необходимо ознакомиться с другой документацией (наподобие документации texinfo).

### Безадресные команды
: метка

Метка для b и t команд.

\#комментарий

Комментарий простирается до следующего вхождения новой строки (или до конца фрагмента сценария -e)

}

Закрывающая скобка блока { }.

### Команды без адреса или с одним адресом
=

Распечатать номер текущей строки.

a \

текст

Добавить текст, где каждое вхождение новой строки начинается со знака обратного слэша.

i \

Вставить текст, где каждое вхождение новой строки начинается со знака обратного слэша.

q

Немедленное выход из сценария sed без дальнейшей обработки любого ввода, за исключением автовывода, если он не отключен. В этом случае будет распечатан текущий набор шаблонов.

r файл

Добавить текст прочитанный из файла.

### Команды, которые принимают интервалы адресов
{

Начало блока команд (оканчивается знаком }).

b метка

Переход к метке; если метка опущена, переход) к концу сценария.

t метка

Если s/// сделал успешную замену, так как была прочитана последняя строка ввода и последняя команда t, то выполнить переход к метке; если метка опущена, то перейти к концу сценария.

c \

текст

Заместить выбранные строки текстом, где каждое вхождение новой строки начинается со знака обратного слэша.

d

Удалить заданную область шаблона. Начать следующий цикл.

D

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

h H

Скопировать/добавить область шаблон к удерживаемой области.

g G

Скопировать удерживаемую область к области шаблона.

x

Поменять местами удерживаемую область и область шаблона.

l

Огласить текущую строку в "визуально однозначной" форме.

n N

Прочитать/добавить следующую строку ввода в область шаблона.

p

Распечатать текущую область шаблона.

P

Распечатать до первого вхождения новой строки текущей области шаблона.

s/регулярное_выражение/замена/

Попытаться разыскать регулярное_выражение (regexp) в области шаблона. Если это удалось, то заместить эту часть с заменой. Замена может содержать специальный символ & для обращения к той части области шаблона, которая является соответствием, и специальные управляющие последовательности, от \1 до \9, для обращения к соответствующим разыскиваемым под-выражениям в регулярном_выражении.

w файл

Записать текущую область шаблона в файл.

y/источник/цель/

Транслитерация символов в области шаблона, которые присутствуют в источнике с соответствующими символами в цели.

## АДРЕСАЦИЯ
Команды sed могут быть заданы без указания адреса, в этом случае команда выполняется для всех строк ввода; с одним адресом, в этом случае команда будет выполнена применительно строкам ввода совпадающим с адресом; или с двумя адресами, в этом случае команда будет выполнена для всех строк ввода, соответствующих заданному диапазону строк начиная с первого и заканчивая последним адресами. Три правила, касающиеся этих диапазонов адресов: используемый синтаксис адрес1,адрес2 (т.е. адреса разделены через запятую); строка, соответствующая адрес1, обрабатывается даже в том случае, если адрес2 указывает на предшествующую ей строку; и если адрес2 является регулярным выражением (regexp), то оно не будет использовано относительно строки, соответствующей адрес1.

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

Поддерживаются следующие типы адресов:

номер

Соответствует только заданному номеру линии.

первая~шаг

Соответствует каждой строке шаг начиная от строки первая. Например, "sed -n 1~2p" напечатает все нечётные строки во входном потоке и адреса 2~5 будут соответствовать каждой пятой строке начиная со второй. (Это расширение GNU.)

$

Соответствует последней строке.

/regexp/

Соответствует строкам подпадающим под определение регулярного выражения regexp.

\cregexpc

Соотвествует строкам подпадающим под определение регулярного выражения regexp. c может быть любым символом.

## РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ
POSIX.2 BRE должны поддерживаться, но всё же не полностью. \n последовательность в регулярном выражении соответствует символу новой строки. Есть также некоторые GNU расширения.

## ПРОЧИЕ ПРИМЕЧАНИЯ
Данная версия sed поддерживает последовательность \<новая_строка> во всех регулярных выражениях, в замещающих частях команд подмены (s) и в частях источник и цель команд транслитерации (y). \ будет удалено, а новая строка сохранена.

## СМ. ТАКЖЕ
awk(1), ed(1), expr(1), emacs(1), perl(1), tr(1), vi(1), regex(5), sed.info, любая из множества книг по sed, sed FAQ (/usr/share/doc/sed-4.1.5/sedfaq.txt.bz2), http://sed.sf.net/grabbag/.

## ОШИБКИ
Сообщения об ошибках направляйте на bug-gnu-utils@gnu.org. Не забудьте указать где-нибудь в поле "Тема" письма слово "sed".

## ОБ АВТОРЕ
Copyright (C) 1998 Free Software Foundation, Inc. Перевод с английского выполнил Александр Блохин <sass@altlinux.ru>


seq

title: seq(1)

summary: выводит последовательность чисел

text:
# seq(1)

## ИМЯ
seq - выводит последовательность чисел

## ОБЗОР
seq [ОПЦИЯ]... ПОСЛЕДНЕЕ_ЧИСЛО

seq [ОПЦИЯ]... ПЕРВОЕ_ЧИСЛО ПОСЛЕДНЕЕ_ЧИСЛО

seq [ОПЦИЯ]... ПЕРВОЕ_ЧИСЛО ШАГ ПОСЛЕДНЕЕ_ЧИСЛО

## ОПИСАНИЕ
Выдает числа от ПЕРВОГО до ПОСЛЕДНЕГО с указанным ШАГОМ.

-f, --format ФОРМАТ

для вывода чисел с плавающей запятой использовать ФОРМАТ, задаваемый по правилам printf(3) (по умолчанию: %g)

-s, --separator СТРОКА

разделять выводимые числа СТРОКОЙ (по умолчанию: \n)

-w, --equal-width

выровнять ширину, дополняя числа при необходимости нулями слева

--help

вывести справку и закончить работу

--version

вывести информацию о версии и закончить работу

Если параметры ПЕРВОЕ_ЧИСЛО или ШАГ пропущены, то считается, что они равны 1, даже если ПОСЛЕДНЕЕ_ЧИСЛО меньше 1. Параметры ПЕРВОЕ_ЧИСЛО, ШАГ и ПОСЛЕДНЕЕ_ЧИСЛО воспринимаются как числа с плавающей запятой. ШАГ должен быть положительным, если ПЕРВОЕ меньше, чем ПОСЛЕДНЕЕ, и, соответственно отрицательным, если больше. Параметр ФОРМАТ должен содержать только один из шаблонов вывода printf: %e, %f, %g

## АВТОР
Ulrich Drepper.

## СООБЩЕНИЕ ОБ ОШИБКАХ
Report bugs to <bug-coreutils@gnu.org>.

## АВТОРСКИЕ ПРАВА
Copyright © 2006 Free Software Foundation, Inc.

Это свободное программное обеспечение. Вы можете распространять его копии при соблюдении условий GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Не предоставляется НИКАКИХ ГАРАНТИЙ, в установленных законом пределах.

## СМ. ТАКЖЕ
Полная документация по seq поддерживается в виде руководства в формате Texinfo. Если программы info и seq установлены и настроены в системе, то по команде

info seq

вы получите доступ к более полному руководству.

## ПЕРЕВОД
Николай Шафоростов <shafff@ukr.net> 2007


sftp

title: sftp(1)

summary: Программа защищённой передачи файлов.

text:
# sftp(1)

## НАЗВАНИЕ
sftp - Программа защищённой передачи файлов.

## СИНТАКСИС
sftp [-vC1] [-b batchfile] [o ssh_option] [-s subsystem | sftp_server] [-B buffer_size] [-F ssh_config] [-P sftp_server path] [-R num_requests] [-S program] host

sftp [[user@]host[:file[file]]]

sftp [[user@]host[:dir[/]]]

## ОПИСАНИЕ
sftp, это интерактивная программа для передачи файлов, похожая на ftp(1), которая осуществляет все операции через зашифрованные средства передачи ssh(1). sftp также может использовать много таких возможностей ssh, как аутентификация с публичным ключем и сжатие. sftp подключается и регистрируется на указанном host, а затем переходит в интерактивный командный режим.

Другой вариант использования позволяет получать файлы автоматически, если используется не интерактивная аутентификация; в противном случае это становится возможно после того, как осуществлена интерактивная аутентификация.

Ещё один способ позволяет sftp-клиенту начать работу в заданном удалённом каталоге.

Распознаются следующие опции:

-b batchfile

Пакетный режим прочитывает набор команд вместо stdin из входного batchfile. Так как данная опция подразумевает недостаток внимания со стороны пользователя, то должна использоваться в сочетании с не интерактивной аутентификацией. При обнаружении ошибок в выполнении любой из следующих команд: get, put, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd и lmkdir, sftp прервёт свою работу. Отмены выполнения, вследствие возникновения ошибки, можно избежать, предварив команду символом "-" (например, -rm /tmp/blah* ).

-o ssh_option

Может быть использована для передачи опций, в формате используемом в ssh_config(5), напрямую к ssh(1). Полезно для указания опций для которых отсутствует отдельный флаг командной строки sftp. Например, для указания альтернативного порта используйте: sftp -oPort=24.

-s subsystem | sftp_server

Указывает подсистему SSH2 или путь для sftp-сервера на удалённой машине. Указание пути полезно при использовании sftp поверх протокола версии 1 или когда удалённый sshd не имеет сконфигурированной sftp-подсистемы.

-v

Повышает уровень отладки. Этот параметр также передается к ssh.

-B buffer_size

Задаёт размер буфера, который используется sftp при передаче файлов. Буферы большего размера требуют меньше обращений туда и обратно за счёт более высокого потребления памяти. Значение по умолчанию 32768 байт. -С Задействует сжатие (при помощи флага ssh -С).

-F ssh_config

Задаёт альтернативный пользовательский файл конфигурации для ssh. Эта опция передаётся к ssh напрямую.

-P sftp_server path

Подключает напрямую к локальному серверу sftp (скорее, чем через ssh). Эта опция полезна для отладки клиента и сервера.

-R num_requests

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

-S program

Имя программы (program), используемой для шифрования соединения. Программа должна распознавать опции ssh(1).

-1

Указывает использовать протокол версии 1.

## ИНТЕРАКТИВНЫЕ КОМАНДЫ
Пребывая в интерактивном режиме sftp понимает набор команд, аналогичный командам ftp(1). Команды являются нечувствительными к регистру букв, и имена путей, если они содержат пробелы, могут быть заключены в кавычки.

bye

Выйти из sftp.

cd path

Изменит удаленный каталог к path.

lcd path

Изменит локальный каталог к path.

chgrp grp path

Изменяет идентификатор группы файла path в значение grp. grp должен быть цифровым GID.

chmod mode path

Изменяет права доступа файла path в mode.

chown own path

Изменяет владельца группы файла path в значение own. own должен быть цифровым UID.

exit

Выйти из sftp.

get [flags] remote_path [local_path]

Получает remote_path и сохраняет его на локальной машине. Если имя локального пути не указано, то ему назначается имя, аналогичное имени на удаленной машине. Если указан флаг -P, то будут скопированы полные права доступа и время доступа к файлу.

help

Печатает справочную информацию.

lls [ls-options [path]]

Отображает либо содержимое локального каталога path, либо текущего каталога, если path не указан.

lmkdir path

Создать локальный каталог указанный в path.

ln oldpath newpath

Создать символическую ссылку от oldpath к newpath.

lpwd

Сообщить имя локального рабочего каталога.

ls [flags] [path]

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

lumask umask

Установить локальную umask в значение umask.

mkdir path

Создать удаленный каталог заданный в path.

progress

Отобразить индикатор прогресса.

put [flags] local-path [remote-path]

Переносит local-path и сохраняет его на удаленной машине. Если имя пути на удаленной машине не указано, то будет назначено тоже-самое имя, как на локальной машине. Если указан флаг -P, то будут скопированы полные права доступа и время доступа к файлу.

pwd

Показать имя удаленного рабочего каталога.

quit

Выйти из sftp.

rename oldpath newpath

Переименовать удаленный файл из oldpath в newpath.

rmdir path

Переместить удаленный каталог указанный в path.

rm путь

Удалить удаленный файл указанный в пути.

symlink oldpath newpath

Создать символическую ссылку из oldpath к newpath.

version

Показать версию sftp-протокола.

! command

Выполнить команду в локальной оболочке.

!

Выйти в локальную оболочку.

?

Синоним для help.

## АВТОРЫ
Damien Miller <djm@mindrot.org>

## ПЕРЕВОД
Перевод с английского: Александр Блохин <sass@altlinux.ru>

## СМОТРИ ТАКЖЕ
scp(1), ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), sftp-server(8), sshd(8)

T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-filexfer-00.txt, January 2001.


title: sha1sum(1)

text:
# sha1sum(1)

## ИМЯ
sha1sum - вычисляет и сверяет криптографические контрольные суммы по алгоритму SHA1

## ОБЗОР
sha1sum [ОПЦИЯ] [ФАЙЛ]...

## ОПИСАНИЕ
Вычисляет или проверяет криптографические контрольные суммы по алгоритму SHA1 (160-бит). Если ФАЙЛ не указан или равен -, используются данные из стандартного потока ввода.

-b, --binary

использовать режим чтения двоичных файлов

-c, --check

сравнить вычисленные контрольные суммы с записанными в ФАЙЛАХ

-t, --text

использовать режим чтения текстовых файлов (поведение по умолчанию)

### Следующие две опции используются только для проверки контрольных сумм:
--status

не выводить никакой информации, результат сравнения будет указан в коде выхода

-w, --warn

сообщать об обнаруженных синтаксических ошибках в ФАЙЛАХ с контрольными суммами

--help

вывести эту справку и закончить работу

--version

вывести информацию о версии и закончить работу

Вычисление контрольных сумм описано в FIPS-180-1. При проверке входные контрольные суммы должны быть получены ранее из этой программы. В режиме по умолчанию это строка с контрольной суммой, символом типа (`*' для двоичных и ` ' для текстовых) и имени для каждого ФАЙЛА.

## АВТОРЫ
Ulrich Drepper и Scott Miller.

## СООБЩЕНИЕ ОБ ОШИБКАХ
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.

## АВТОРСКИЕ ПРАВА
Copyright © 2006 Free Software Foundation, Inc.

Это свободное программное обеспечение. Вы можете распространять его копии при соблюдении условий GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Не предоставляется НИКАКИХ ГАРАНТИЙ в установленных законом пределах.

## СМ. ТАКЖЕ
Полная документация по sha1sum поддерживается в виде руководства в формате Texinfo. Если программы info и sha1sum установлены и настроены в системе, то по команде

info sha1sum

вы получите доступ к более полному руководству.

## ПЕРЕВОД
Сергей Быбин <bybin@telros.ru> 2007


shred

title: shred(1)

text:
# shred(1)

## ИМЯ
shred - переписывает файл, скрывая его содержимое, и выборочно удаляет его

## ОБЗОР
shred [ОПЦИЯ] ФАЙЛ [...]

## ОПИСАНИЕ
Переписывает несколько раз указанные файлы для того, чтобы сделать более трудоёмким процесс восстановления данных даже в случае использования специального оборудования для восстановления.

Аргументы, обязательные для длинных ключей, обязательны и для коротких.

-f, --force

изменить права для разрешения записи, если необходимо

-n, --iterations=N

Переписать N раз вместо указанных (25) по умолчанию

-s, --size=N

очистить N байт (возможны суффиксы вида K, M, G)

-u, --remove

обрезать и удалить файл после перезаписи

-v, --verbose

показывать индикатор прогресса

-x, --exact

не округлять размеры файлов до следующего целого блока;

по умолчанию для не-регулярных файлов

-z, --zero

перезаписать в конце с нулями, чтобы скрыть перемешивание

--help

показать справку и выйти

--version

показать информацию о версии и выйти

Если файл задан как -, перемешивать стандартный вывод.

Удаляет ФАЙЛЫ если указан --remove (-u). По умолчанию файлы не удаляются, так как часто обрабатываются файлы-устройства вроде /dev/hda, а такие файлы нельзя удалять. При обработке обычных файлов большинство людей используют опцию --remove .

ВНИМАНИЕ: Помните, что shred полагается на очень важное предположение: что ваша файловая система перезаписывает файлы "на месте". Традиционно это так и делается, но многие современные файловые системы не удовлетворяют этому условию. Ниже приведены примеры файловых систем, на которых shred не эффективен или не даёт гарантии эффективности во всех режимах файловой системы:

* протоколируемые или журналируемые файловые системы, которые идут в комплекте

AIX и Solaris (и JFS, ReiserFS, XFS, Ext3, и др.)

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

неудачные записи, например, файловые системы, основанные на технологии RAID

* файловые системы, создающие копии состояния, такие как NFS-сервер от Network Appliance

* файловые системы, кеширующие файлы во временных хранилищах, такие как NFS

клиенты NFS версии 3

* сжатые файловые системы

В случае файловых систем ext3, упомянутое выше ограничение верно (и shred, следовательно, не так эффективен) только в режиме data=journal, когда кроме метаданных журналируются также и сами данные файлов. В режимах data=ordered (по умолчанию) и data=writeback, программа shred работает как обычно. Режимы журналирования ext3 можно изменить добавлением опции data=режим к параметрам монтирования отдельной файловой системы в файле /etc/fstab, как документировано в странице man для mount (man mount).

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

## АВТОР
Колин Пламб.

## СООБЩЕНИЕ ОБ ОШИБКАХ
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.

## АВТОРСКИЕ ПРАВА
Copyright (c) 2006 Free Software Foundation, Inc.

Это свободное программное обеспечение. Вы можете распространять его копии при соблюдении условий GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Не предоставляется НИКАКИХ ГАРАНТИЙ в установленных законом пределах.

## СМ. ТАКЖЕ
Полная документация для shred поддерживается в виде руководства в формате Texinfo. Если программы info и shred установлены и настроены в системе, то по команде

info shred

вы получите доступ к более полному руководству.

## ПЕРЕВОД
Перевод с английского russians <pawel5@mail.ru> 2007


sleep

title: sleep(1)

summary: выполняет задержку на указанное время

text:
# sleep(1)

## ИМЯ
sleep - выполняет задержку на указанное время

## ОБЗОР
sleep ЧИСЛО[ПРИСТАВКА-ЕДИНИЦ]...

sleep ОПЦИЯ

## ОПИСАНИЕ
Выполняет задержку на ЧИСЛО секунд. Необязательный параметр ПРИСТАВКА-ЕДИНИЦ позволяет сменить единицы времени. Это могут быть: `s' - секунды (по умолчанию), `m' - минуты, `h' - часы, `d' - дни. В отличие от большинства других реализаций команды, которые требуют целочисленного значения ПРИСТАВКИ-ЕДИНИЦ, настоящая реализация допускает указание дробного десятичного числа.

--help

выводит эту информацию и завершает работу

--version

выводит версию программы и завершает работу

## АВТОРЫ
Jim Meyering и Paul Eggert.

## СООБЩЕНИЕ ОБ ОШИБКАХ
Сообщайте о всех найденных ошибках на <bug-coreutils@gnu.org>.

## АВТОРСКИЕ ПРАВА
Copyright © 2006 Free Software Foundation, Inc.

Это свободное программное обеспечение. Вы можете распространять его копии при соблюдении условий GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Не предоставляется НИКАКИХ ГАРАНТИЙ в установленных законом пределах.

## СМ. ТАКЖЕ
Полная документация по sleep поддерживается в виде руководства в формате Texinfo. Если программы info и sleep установлены и настроены в системе, то по команде

info sleep

вы получите доступ к более полному руководству.

## ПЕРЕВОД
Николай Шафоростов <shafff@ukr.net> 2007


sort

title: sort(1)

summary: сортирует строки текстовых файлов

text:
# sort(1)

## ИМЯ
sort - сортирует строки текстовых файлов

## ОБЗОР
sort [ПАРАМЕТР]... [ФАЙЛ(Ы)]...

## ОПИСАНИЕ
Отправляет результат сортировки содержимого указанных ФАЙЛОВ (всех ФАЙЛОВ) на стандартный поток вывода. Все указываемые в командной строке файлы объединяются.

Основные параметры:

Обязательные аргументы для длинных форм параметров являются также обязательными и для коротких форм.

-b, --ignore-leading-blanks

игнорировать пробелы в начале сортируемых полей или начале ключей

-d, --dictionary-order

воспринимать в составе ключей лишь буквы (латинского алфавита), цифры и пробелы, игнорируя все прочие символы

-f, --ignore-case

во время сортировки преобразует строчные (маленькие) в соответствующие прописные (большие) буквы, т.е. выполняется сортировка нечувствительная к регистру символов

-g, --general-numeric-sort

выполнять сравнение в соответствии с общим числовым значением (используют совместно с параметром -b). Это численная сортировка, при которой дополнительно распознаётся экспоненциальное представление чисел (например, 9.1019e7)

-i, --ignore-nonprinting

в ключах рассматриваются только печатаемые (ASCII) символы, а остальные игнорируются

-M, --month-sort

выполнять сравнение по трёх-символьным сокращениям англоязычных названий месяцев, т.е. (незнакомое) < `JAN' < ... < `DEC'

-n, --numeric-sort

числовая сортировка, т.е. сравнение ведётся по числовому значению (используют совместно с параметром -b)

-R, --random-sort

отсортировать по хэшу ключа; функцию хэширования выбрать случайным образом

-r, --reverse

сортировка выполняется в обратном порядке (по убыванию)

Другие параметры:

-c, --check

проверяет сортировался ли указанный файл. Если да, то не выполняет сортировку, иначе выводит сообщение об ошибке

-k, --key=ПОЗ1[,ПОЗ2]

выбирает ключ сортировки, начиная с позиции ПОЗ1 и заканчивая позицией ПОЗ2 (включительно). Номера полей и смещения символов указываются, начиная с 1

-m, --merge

объединяет ранее отсортированные ФАЙЛЫ, которые не сортируются повторно

-o, --output=ФАЙЛ

выводит результат в указанный файл ФАЙЛ вместо стандартного вывода

-s, --stable

стабилизирует сортировку, не выполняя сравнения последней пересортировки

-S, --buffer-size=РАЗМЕР

под основной буфер в памяти использует область размером РАЗМЕР

-t, --field-separator=СИМВОЛ

использовать СИМВОЛ в качестве разделителя полей

-T, --temporary-directory=КАТАЛОГ

использует указанный КАТАЛОГ для временных файлов, игнорируя переменную окружения $TMPDIR или /tmp; составные параметры могут указывать на различные каталоги

-u, --unique

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

-z, --zero-terminated

вместо символа новой строки (newline), завершает строки двоичным 0

--help

вывести справку о программе, её параметрах и завершить работу

--version

вывести информацию о версии программы и завершить работу

Синтаксис параметра -k, --key=ПОЗ1[,ПОЗ2] означает следующее:

ПОЗ указывается в формате F[.C][OPTS], где F является порядковым номером поля, а C позицией символа в этом поле. OPTS представляет собой одну или более одиночных букв, которые означают рассмотренные выше параметры и их действие перекрывает действие глобальных параметров для этого ключа. Если ни один ключ не задан, в качестве ключа используется вся строка. Ключ сортировки - это часть строки, которая рассматривается при сортировке, вместо того чтобы рассматривалась вся строка. Таким образом, команда:

sort -k1.3

осуществляет сортировку по первому полю, начиная с его третьего символа. Команда

sort -k4.6,7n

означает сортировку с 6-го символа четвёртого поля до 1-го символа седьмого поля. Сортировка ведётся по числовому значению. Допускается задание нескольких параметров -k для того, чтобы определить несколько ключей, которые будут использованы последовательно в том порядке, в котором они указаны в командной строке.

Величина размера SIZE памяти, отводимой для работы команды sort может быть задана со следующими суффиксами: % - 1% от общей памяти; b - в байтах; K - 1024 байт (по умолчанию); и соответственно для M, G, T, P, E, Z, Y.

Если в командной строке не указан никакой файл или вместо имени стоит дефис, считывается стандартный ввод (с клавиатуры).

*** ВНИМАНИЕ ***

На сортировку влияют установки локали. Установите переменную окружения LC_ALL=C , чтобы получить обычную сортировку в том порядке, который использует действительные значения байт.

## АВТОР
Mike Haertel и Paul Eggert.

## СООБЩЕНИЕ ОБ ОШИБКАХ
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.

## АВТОРСКИЕ ПРАВА
Copyright © 2006 Free Software Foundation, Inc.

Это свободное программное обеспечение. Вы можете распространять его копии при соблюдении условий GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Не предоставляется НИКАКИХ ГАРАНТИЙ в установленных законом пределах.

## СМ. ТАКЖЕ
Полная документация по sort поддерживается в виде руководства в формате Texinfo. Если программы info и sort установлены и настроены в системе, то по команде

info sort

вы получите доступ к более полному руководству.

## ПЕРЕВОД
Перевод оригинального файла на английском sort.1.gz (от 01.06.2006) (+авторские дополнения) выполнен Aleksander N. Gorohovski <angel@feht.dgtu.donetsk.ua> 2006. Некоторые правки к переводу: Slava Semushin <php-coder@altlinux.ru>.