HPUNIX Сайт о ОС и не только!

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

6 октября 2008 - unix
Rsync утилита для резвого удаленного либо локального копирования файлов

Rsync разработан для замены rcp – старенькой программы для удаленного копирования под Unix. Благодаря широким возможностям синхронизации и передачи файлов, rsync часто применяется для сотворения зеркал.
Внедрение хитроумного способа, позволяет rsync передавать только конфигурации в файлах, при всем этом для выявления конфигураций ему не надо сравнивать два файла. Не считая того, rsync производит сжатие на лету, позволяя тем передавать файлы с большей эффективностью.
Не считая перечисленных выше вкусностей, rsync обладает также и несколькими полезными возможностями обеспечения безопасности. Он поддерживает ssh – рекомендованный протокол для безопасной передачи данных; перед обработкой инфы производит ее запись во временный файл, чтобы ничего не случилось с оригиналом, в конце концов, он поддерживает особенный режим безопасной отладки команд.
Rsync прост в использовании, но не является программой «click-and-play». Это —мощнейший инструмент, который может быть очень полезным, но не стоит забывать об осторожности, так как его с помощью просто что-нибудь попортить.
Синтаксис утилиты
Синтаксис утилиты обыденный и довольно обыденный.
rsync [функции] источник [приемник]

Указав только источник, мы увидим список файлов без операции копирования.
Функции и примеры
Для простоты понимания, операции синхронизации привожу поначалу локально.
Быстрый способ синхронизировать два каталога, это использовать опцию -a:
rsync -a foobar_src/ foobar_dst/

Rsync утилита для резвого удаленного либо локального копирования файлов
В данном случае файлы и директории из источника скопируются в приемник, при всем этом, если там были файлы, то совпавшие по имени будут перезаписаны, а другие не тронуты.
Функция -a задает архивный режим работы утилиты, и является эквивалентом набора опций:
-r, --recursive — рекурсивный режим;
-l, --links — пересоздание symlinks, это значит, что символические ссылки будут так же переноситься;
-p, --perms — перенос прав;
-t, --times — передача времени модификации и его обновление на удаленной системе. Этот ключ должен быть установлен для точной синхронизации;
-g, --group — установить группу конечного файла таким же, как и у исходного;
-o, --owner — установить носителя конечного файла таким же, как и у исходного;
-D, - same as --devices --specials — установить тип файла устройства и файла специального типа таким же, как у исходного.
В итоге получаем копию директории источника. Кстати, это можно использовать при переносе ОС на другой винчестер, подправив /etc/fstab, установив/переустановив grub на новом винте — получаем рабочую систему, но это уже другая тема.
Для вывода инфы о работе утилиты, существует функция -v, —verbose. Чем больше опций -v, тем боле информативным будет вывод утилиты. Большая информативность достигается при Четыре функциях -v, —verbose.
Если у нас содержится в директории источника актуальная информация, то чтобы не засорять приемник информацией, которая в процессе работы была удалена или перемещена в источнике, нужно старые файлы и директории удалить. Для этого есть несколько опций удаления, неважно какая из которых предоставляет свой способ удаления. Их аж 6!
Rsync утилита для резвого удаленного либо локального копирования файлов
--del — сокращенная форма --delete-during
--delete — просто удалить посторонние файлы из приемника;
--delete-before — приемник удаляет перед передачей;
--delete-during — приемник удаляет в процессе передачи, но не перед;
--delete-delay — отложенное удаление/найти файлы для удаления в процессе передачи, но удалить после передачи;
--delete-after — приемник удаляет после передачи, но не перед ней;
--delete-excluded — так же удалить исключенные файлы в приемнике, для этого задается шаблон (--exclude=PATTERN).
Rsync утилита для резвого удаленного либо локального копирования файлов
Допустим у нас на приемнике есть более свежие файлы, и мы не хотим что бы они были перезаписаны старыми из источника, то для этого применяется ключ -u, —update.
-u, --update — пропустить файлы, если на приемнике файл новее.
Не стоит пугаться если поменялись даты директорий, т.к. сами файлы небыли перезаписаны.
Время от времени файлы могут повредится или быть модифицырованы, но совпадать и датой и размером. То можно использовать проверку контрольной суммы, функция -c, —checksum.
Моей задачей было разобраться, как сделать запасную копию коллекций фото, музыки, наработок по университету и работе. При всем этом в источнике информация всегда актуальная, а то что удалено — мусор. Пример для решения моей задачи:
Rsync утилита для резвого удаленного либо локального копирования файлов
rsync -auvv --delete-during foobar_src/ foobar_dst/
Это обновит мой приемник, если он был уже чем то заполнен — вычистит то, чего нет в источнике, но не затронет файлы которые поновее, выведет статистику и состояние по каждому файлу.
Удаленная работа
Не считая того, очень полезным будет его способность работать через ssh. Что обеспечивает шифрование канала, что очень принципно, если вы синхронизируете два сервера в сети интернет. Для уменьшение трафика, rsync так-же умеет сжимать данные, при передаче по сети.
Необходимы следующие функции:
Rsync утилита для резвого удаленного либо локального копирования файлов
-e — задать удаленный шелл для использования;
-z — сжимать передаваемые данные, либо задать:
Rsync утилита для резвого удаленного либо локального копирования файлов
-compress-level=9 — сжатие с установкой уровня компрессии.
Пример копирования с удаленного хоста по протоколу ssh:
rsync -avv --delete-during -compress-level=9 -e "ssh -p remote_ssh_port" [email protected]:/dir/to/foobar_src foobar_dst/
При всем этом, на стороне источника нужно иметь установленную утилиту rsync.
Больше инфы про утилиту rsync вы сможете найти в ее же документации.

Взято с Habrahabr.ru

Похожие статьи

  • SSH для обыденных смертных

    В сети много документов по настройке удалённого управления в Линукс и БСД-системах, но часто в их умалчиваются простые (после прокуривания мануалов и гуглежа) вещи. Непосредственно о их я расскаж...

  • SSH для обыденных смертных (авторизация по ключу)

    SSH авторизация по ключуПредставим себе что у нас имеются 10-ки (о, ужас сотки машин) и к каждой необходимо запоминать различные пароли, а ставить один и тот же пароль не рекомендуется исходя из убе...

  • SSH для обыденных смертных (возможности SSH)

    Дополнительные возможности SSHКопирование файловиз командной строки употребляется команда scp.$ scp [file1] [[email protected]:file2]некоторые функции:-l limit — Ограничивает пропускную способность заданную...

  • Создание скринкастов (screencast) в Linux

    Понадобилась сделать скринкаст в Ubuntu, там глядеть что есть и вспомнил что когда-то очень давно писал заметку по этому поводу еще при использовании Ubuntu 6.06, но как писал тут, о сайте...

  • Оптимизация производительности Apache

    Apache — популярный веб-сервер в интернет, он обслуживает неограниченное количество серверов и сайтов. Часто возникает необходимость прирастить производительность веб-сервера. Наверня...

Теги: ос
Рейтинг: +19 Голосов: 40 934 просмотра
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

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