Кто-либо может сказать мне, что это делает?
rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log
Это удаляет bkp01
и offbk2
и отправляет журнал в offbkp01.log
?
Для разбивания этого в части существует два главных раздела, сопровождаемые сводкой и примечаниями:
rsync
команда:rsync -uva --delete /srv/bkp01 /srv/offbk2/
rsync-command > ~/offbkp01.log
rsync
команда:rsync
- Я предполагаю, что этому не нужно никакое объяснение (но обеспечит, если требуется).-uva
- Ряд односимвольных опций, будучи (коротким затем показанная подробная форма):
-u
--update
- Говорит rsync, что все модификации должны только относиться к файлам на месте назначения, которые одного возраста (и различные размеры) или более старый, чем те на источнике. Таким образом, rsync должен только передать изменения из источника, который обновил бы место назначения, но он не должен вносить изменения, которые заставили бы целевой файл стать более старой версией.
Существуют некоторые исключения. Различия в типе (например, каждый - файл, другой каталог), вызовет обновление независимо от дат. Символьные ссылки и другие специальные файлы игнорируют эту опцию. И, значительно, это не влияет, какие файлы удалены.
-v
--verbose
- Увеличивается объем информации rsync распечатывает при выполнении. Без этого rsync распечатает (почти?) ничто. При использовании этой опции как есть, rsync скажет Вам, какие файлы передаются и помещают сводку в конец.Еще v
s увеличивают распечатанную информацию, хотя в странице справочника говорятся больше чем два v
s должен только использоваться при отладке. -a
--archive
- Это эквивалентно нескольким другим опциям (-rlptgD
) упакованный вместе. Как длинное имя предполагает, это - быстрый способ установить много общих опций для архивации файлов и каталогов. Это будет:-r
--recursive
- Говорит rsync копировать каталоги рекурсивно. Без этого или более конкретного -d
--dirs
опция, rsync просто пропустила бы любые каталоги, с которыми она встретилась (и скажите Вам об этом в ее выводе). -l
--links
- Когда источник будет символьной ссылкой, создайте символьную ссылку на месте назначения. В зависимости от других опций символьные ссылки могут иначе быть пропущены или превращены в полную отдельную копию (т.е. истинный каталог с содержанием (или другую копию файла) вместо символьной ссылки). -p
--perms
- Устанавливает полномочия целевых файлов к тому же как исходные файлы. -t
--times
- Устанавливает время изменения целевых файлов к тому же как исходные файлы. Начиная с хранения этих времен в синхронизации делает rsync алгоритм более эффективным, Вы обычно всегда хотите, чтобы это использовалось, явно или неявно. -g
--group
- Устанавливает атрибут группы места назначения к тому же как источник. Партнеры по имени по умолчанию, но отступит к Идентификационному номеру группы при некоторых обстоятельствах. Если получение rsync не выполняется как суперпользователь (или фальсифицирование его с --fake-super
), только группы, которых пользователь, который вызвал rsync на сторону получения, является членом, могут быть установлены. Иначе группа будет просто установлена на группу по умолчанию того же пользователя, упомянутого прежде. -D
- Эквивалентный опциям --devices
и --specials
вместе. Они имеют в виду:--devices
- Устройство посимвольного ввода-вывода и файлы блочного устройства передаются. Не имеет никакого эффекта, если получение rsync не выполняется как суперпользователь (или фальсифицирование его с --fake-super
). --specials
- Специальные файлы (как сокеты) передаются (они иначе не были бы). --delete
- Говорит rsync удалять файлы, которые находятся на месте назначения, но не на источнике. Это НЕ затронуто набором опции обновления выше (действительно, как это могло быть, так как большинство файловых систем не сохранит необходимые данные для наблюдения, какое действие было более новым?). Эти действия опции на источниках после расширения подстановочного знака/шарика, таким образом, dir /* не является тем же как dir/. Некоторые важные примечания:--dry-run
опция сначала, которая сделает симулировать передачу, которая позволяет Вам не удостоверяться никакие непреднамеренные изменения, сделана. --ignore-errors
опция, хотя Вы, вероятно/, хочет сделать это.--delete-during
алгоритм используется. Если получатель является более старым, то --delete-before
используется. Если важно, чтобы файлы поддержали определенный вид непротиворечивости, должен ошибка происходить (такие как не удаление чего-либо, пока все другие изменения не внесены), необходимо использовать более определенную опцию, чем по умолчанию./srv/bkp01
- Исходный файл или каталог. Существуют некоторые подробные правила о том, что это означает, существует ли наклонная черта на конце каталога, и если другой каталог существует. Вы видите раздел USAGE страницы справочника для получения дополнительной информации но здесь отсутствие запаздывающей наклонной черты означает, что этот каталог будет скопирован в место назначения, а не содержание этого каталога, скопированное в место назначения. То же, если это - файл, а не каталог./srv/offbk2/
- Целевой каталог. В целом это всегда будет последним объектом, перечисленным в разделе команды rsync, если опция не будет использоваться для определения его в другом месте в команде.>
- Это перенаправляет stdout (стандартный вывод) от того, что слева в файл справа, становясь его содержанием, и создавая файл (если возможный), если он уже не существует. Некоторые примечания:2>&1
к самому концу команды выше. Порядок важен, так быть тщательным обобщением, куда поместить это. Магическое число 1
относится к stdout, 2
относится к stderr, &
(по существу) "адрес", и полные средства отрывка команды "перенаправляют вывод stderr в stdout поток". >>
вместо этого. Метод для перенаправления stderr к тому же месту остается тем же. 1> stdout_file 2> stderr_file
. Можно также использовать >>
вместо >
в той команде, чтобы сделать так путем добавления вместо замены.~
- Это - сокращение от корневого каталога текущего пользователя и является частью следующего бита.~/offbkp01.log
- файл offbkp01.log в корневом каталоге текущего пользователя. Это - то, куда вывод команды rsync будет помещен из-за перенаправления с >
.Таким образом, эта команда будет:
/srv/bkp01
, /srv/offbk2/bkp01
, и это удалит что-либо в /srv/offbk2/
это не находится в /srv/bkp01
, со следующими условиями:
/srv/offbk2/
это является более новым, чем его время изменения на /srv/bkp01
, это не будет обновлено, если оба объекта будут все еще тем же типом (регулярный файл, каталог или символьная ссылка (?)). Кроме того, rsync распечатает некоторую информацию о том, что это делает (а именно, какие файлы передаются, и заключительная сводка), который оболочка запишет в файл ~/offbkp01.log
. Тот файл журнала будет создан снова, если он не будет уже существовать и будет перезаписан, если он действительно уже существует.
NB: --fake-super
опция, используемая, чтобы заставить rsync моделировать операции суперпользователя. Это делает это при помощи расширенных атрибутов файлов для хранения атрибутов, которые это не могло установить, не имея больших полномочий. Реальная версия каждого атрибута установлена на то, что имеет смысл, учитывая опции и доступные полномочия. В то время как это делает удобным сделать некоторые резервные копии, даже если у Вас нет полномочий суперпользователя, нужно также отметить, что это может изложить угрозу безопасности, больше, чем использование rsync в целом, поскольку реальные атрибуты безопасности не могут быть установлены правильно, даже при том, что информация о них была поддержана.
Источник: много времени, работая с rsync и читая его страницу справочника.
Из руководства:
- удаляют
, Это говорит rsync удалять посторонние файлы из стороны получения (что aren’t на передающей стороне), но только для каталогов, которые синхронизируются. Вы должны haveasked rsync для отправки целого каталога (например, "dir" или "dir /"), не используя подстановочный знак для directory’s содержания (например, "dir /*"), так как подстановочный знак расширен оболочкой, и rsync таким образом заставляет запрос передавать отдельные файлы, не files’ родительский каталог. Файлы, которые исключены из передачи, также исключены из того, чтобы быть удаленным, если Вы не используете - удаляют - исключенная опция или отмечают правила как только соответствие на передающей стороне (см. включать/исключать модификаторы в разделе FILTER RULES).
, Таким образом, это удалит файлы от места назначения, которые не являются частью исходного каталога, если Вы не использовали подстановочные знаки.
каталог Source:
1.txt
2.txt
3.txt
каталог Destination:
4.txt
4.txt будет следоваться, rsync и 1.txt, 2.txt и 3.txt будет на месте назначения.
<час>Относительно других вещей:
uva
Нет, это только удаляет посторонние файлы из bkp01
каталог.
Также:
-u
, --update
- пропустите файлы, которые являются более новыми на получателе-v
, --verbose
- многословие увеличения-a
, --archive
- режим архивирования; равняется-rlptgoD (никакой-H,-A,-X)Вывод rsync -uva --delete /srv/bkp01 /srv/offbk2/
команда, отправляют к ~/offbkp01.log
файл с помощью оператора перенаправления (>
) вместо этого быть распечатанным в Вашем терминале. Если файл не делает существует, он будет создан. Если файл будет существовать, старое содержание, то это будет стерто.
Посмотрите man rsync
для большего количества информации.
rsync
Удаленная копия файла - Синхронизируют деревья файла через локальные диски, каталоги или через сеть.
-u update
-v verbose
-a archive
--delete --> delete
Здесь это удалит файлы в offbk2.
Тогда вывод результата (успех или не) будет перенаправлен к тому файлу журнала.