Кто-то может объяснить эту команду rsync для меня?

Кто-либо может сказать мне, что это делает?

rsync -uva --delete /srv/bkp01 /srv/offbk2/ > ~/offbkp01.log

Это удаляет bkp01 и offbk2 и отправляет журнал в offbkp01.log?

11
задан 12 May 2014 в 21:44

4 ответа

Для разбивания этого в части существует два главных раздела, сопровождаемые сводкой и примечаниями:

  • rsync команда:
    rsync -uva --delete /srv/bkp01 /srv/offbk2/
  • перенаправление вывода, сделанное оболочкой, выполняющей команду rsync:
    rsync-command > ~/offbkp01.log

rsync команда:

Основная команда:

  • rsync - Я предполагаю, что этому не нужно никакое объяснение (но обеспечит, если требуется).

Опции команды:

  • -uva - Ряд односимвольных опций, будучи (коротким затем показанная подробная форма):

    • -u --update - Говорит rsync, что все модификации должны только относиться к файлам на месте назначения, которые одного возраста (и различные размеры) или более старый, чем те на источнике. Таким образом, rsync должен только передать изменения из источника, который обновил бы место назначения, но он не должен вносить изменения, которые заставили бы целевой файл стать более старой версией.

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

    • -v --verbose - Увеличивается объем информации rsync распечатывает при выполнении. Без этого rsync распечатает (почти?) ничто. При использовании этой опции как есть, rsync скажет Вам, какие файлы передаются и помещают сводку в конец.Еще vs увеличивают распечатанную информацию, хотя в странице справочника говорятся больше чем два vs должен только использоваться при отладке.
    • -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 опция, хотя Вы, вероятно/, хочет сделать это.
    • Существует несколько вариаций на удалить алгоритм, о котором можно читать больше в странице справочника. Когда получение rsync является версией 3.0.0 или более новый (по состоянию на время этой записи) --delete-during алгоритм используется. Если получатель является более старым, то --delete-before используется. Если важно, чтобы файлы поддержали определенный вид непротиворечивости, должен ошибка происходить (такие как не удаление чего-либо, пока все другие изменения не внесены), необходимо использовать более определенную опцию, чем по умолчанию.

Местоположения команды:

  • /srv/bkp01 - Исходный файл или каталог. Существуют некоторые подробные правила о том, что это означает, существует ли наклонная черта на конце каталога, и если другой каталог существует. Вы видите раздел USAGE страницы справочника для получения дополнительной информации но здесь отсутствие запаздывающей наклонной черты означает, что этот каталог будет скопирован в место назначения, а не содержание этого каталога, скопированное в место назначения. То же, если это - файл, а не каталог.
  • /srv/offbk2/ - Целевой каталог. В целом это всегда будет последним объектом, перечисленным в разделе команды rsync, если опция не будет использоваться для определения его в другом месте в команде.

Перенаправление вывода Shell:

Shell управляет:

  • > - Это перенаправляет stdout (стандартный вывод) от того, что слева в файл справа, становясь его содержанием, и создавая файл (если возможный), если он уже не существует. Некоторые примечания:
    • Можно также перенаправить stderr (вывод стандартной погрешности) в тот же файл путем добавления 2>&1 к самому концу команды выше. Порядок важен, так быть тщательным обобщением, куда поместить это. Магическое число 1 относится к stdout, 2 относится к stderr, & (по существу) "адрес", и полные средства отрывка команды "перенаправляют вывод stderr в stdout поток".
    • Если Вы хотите добавить к файлу журнала вместо того, чтобы заменить его, можно использовать >> вместо этого. Метод для перенаправления stderr к тому же месту остается тем же.
    • Можно отправить stdout и stderr к различным местам при помощи 1> stdout_file 2> stderr_file. Можно также использовать >> вместо > в той команде, чтобы сделать так путем добавления вместо замены.

Переменные Shell / специальные символы:

  • ~ - Это - сокращение от корневого каталога текущего пользователя и является частью следующего бита.

Местоположения уровня Shell:

  • ~/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 и читая его страницу справочника.

32
ответ дан 16 November 2019 в 14:47

Из руководства:

- удаляют

, Это говорит 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
  • файлы обновления
  • подробный: повторите результаты к терминалу (т.е. перенаправление это к Вашему файлу журнала так да к последнему вопросу)
  • архив: режим архивирования; равняется-rlptgoD (никакой-H,-A,-X)
9
ответ дан 16 November 2019 в 14:47

Нет, это только удаляет посторонние файлы из bkp01 каталог.

Также:

  • -u, --update - пропустите файлы, которые являются более новыми на получателе
  • -v, --verbose - многословие увеличения
  • -a, --archive - режим архивирования; равняется-rlptgoD (никакой-H,-A,-X)

Вывод rsync -uva --delete /srv/bkp01 /srv/offbk2/ команда, отправляют к ~/offbkp01.log файл с помощью оператора перенаправления (>) вместо этого быть распечатанным в Вашем терминале. Если файл не делает существует, он будет создан. Если файл будет существовать, старое содержание, то это будет стерто.

Посмотрите man rsync для большего количества информации.

3
ответ дан 16 November 2019 в 14:47
rsync 

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

-u update 

-v verbose

-a archive


--delete --> delete

Здесь это удалит файлы в offbk2.

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

1
ответ дан 16 November 2019 в 14:47

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

Похожие вопросы: