Rsync примеры синхронизации

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

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

Для этого существуют специальные утилиты. В этой статье мы рассмотрим одну из них. А именно будет рассмотрена rsync синхронизация в linux.

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

Примечательная особенность Rsync — возможность передавать зашифрованные файлы с помощью SSH и SSL.

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

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

Возможно использование rsync для синхронизации файлов, каталогов, при этом может применяться сжатие и шифрование. Программа впервые была применена в июне 1996 года, она разработана Эндрю Тридгелом и Полом Маккеррасом.

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

Как вы уже поняли, в этой статье мы рассмотрим rsync примеры синхронизации, настройку rsync, а также ее основные возможности и опции.

Особенности Rsync

Давайте сначала рассмотрим примечательные особенности Rsync:

  • Возможность поддерживать синхронизацию целых деревьев каталогов
  • Можно сохранять символические ссылки, жесткие ссылки, владельцев и права файла, метаданные и время создания.
  • Не требует особых привилегий
  • Передача файлов одним потоком
  • Поддержка RSH, SSH в качестве транспорта
  • Поддержка анонимного Rsync

Синтаксис Rsync

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

В Ubuntu команда установки будет выглядеть вот так:

Видео: rsync — Backup and Sync Files — Linux CLI

$ sudo vi /etc/rsyncd.conf
$ sudo service rsyncd start
$ rsync -zvh file /tmp/backups/

Синхронизация папок на локальной машине

Видео: Rsync — молниеносный деплой средних и крупных проектов (gulp-rsync)

Синхронизация папок rsync выполняется так же просто, как и файлов:

$ rsync -avz documents/ root@192.168.0.101:/home/

Также само можно синхронизировать файлы с rsync из удаленного сервера:

$ rsync -avzhe ssh root@192.168.0.101:/root/install.log /tmp/

А теперь передадим данные на тот же сервер:

$ rsync -avzhe ssh —progress /home/user/documents root@192.168.0.101:/root/documents

Синхронизация не всех файлов в rsync

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

Например, скопируем все файлы, начинающиеся на букву R:

$ rsync -avz —delete root@192.168.0.101:/documents/ /tmp/documents/

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

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

Для этого используется опция —max-size. Например, будем синхронизировать только файлы меньше 200 килобайт:

$ rsync —remove-source-files -zvh backup.tar /tmp/backups/

Таким образом, файл backup.tar будет удален после завершения копирования в папку /tmp/backups.

Режим симуляции rsync

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

Для этого есть опция dry-run. Команда только выведет все выполняемые действия в терминал, без выполнения реальных изменений:

$ rsync —bwlimit=100 -avzhe ssh /user/home/documents/ root@192.168.0.101:/root/documents/

Как я уже писал выше, rsync синхронизирует только части файла, если вы хотите синхронизировать файл целиком используйте опцию -W:

backup.tar

Автоматическая синхронизация папок rsync

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

Создаем ключ:

$ ssh-keygen -t rsa

Загружаем ключ на сервер к с которым собираемся синхронизироваться:

$ crontab -e

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*