WindowsMacПрограммное обес..НастройкиБезопасностьПродуктивностьЛинуксАндроид (Androi.. Все

Как использовать rsync для резервного копирования и синхронизации

Отредактировано 2 Несколько часов назад от ExtremeHow Редакционная команда

Резервное копированиеКомандная строкаФайлыСинхронизацияУправление даннымиУтилитыСкриптингБезопасностьХранениеПередачи

Как использовать rsync для резервного копирования и синхронизации

Перевод обновлен 2 Несколько часов назад

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

Понимание основ rsync

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

rsync [опции] источник назначение

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

Установка

Rsync обычно устанавливается по умолчанию на большинстве дистрибутивов Linux. Чтобы проверить, установлен ли он, можно ввести:

rsync --version

Если Rsync не установлен, вы можете добавить его с помощью менеджера пакетов, связанного с вашей операционной системой. Например, в системе, основанной на Debian, вы бы использовали:

sudo apt-get install rsync

В системах на базе Red Hat вы можете установить его с использованием:

sudo yum install rsync

Основное использование rsync

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

rsync -avzh /path/to/source_directory/ /path/to/destination_directory/

Давайте проанализируем опции, использованные в этой команде:

Обратите внимание, что конечный слеш в source_directory/ гарантирует, что будут скопированы только содержимое каталога, а не сам каталог.

Rsync через SSH

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

rsync -avz -e "ssh" user@remote_host:/path/to/remote_directory/ /path/to/local_directory/

Эта команда использует параметр -e для указания программы удаленной оболочки (в данном случае SSH).

Аналогично, чтобы скопировать файлы с локальной системы на удаленный сервер, измените аргументы source и destination:

rsync -avz /path/to/local_directory/ user@remote_host:/path/to/remote_directory/

Если ваш SSH использует другой порт (отличный от порта по умолчанию 22), вы можете указать его с помощью:

rsync -avz -e "ssh -p 2222" /path/to/local_directory/ user@remote_host:/path/to/remote_directory/

Обработка удалений

При синхронизации директорий вы хотите, чтобы каталог назначения точно отражал исходный каталог, включая удаления. Для этого можно использовать опцию --delete:

rsync -avz --delete /path/to/source_directory/ /path/to/destination_directory/

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

Работа с большими наборами файлов

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

rsync -avz /path/to/source/ /path/to/destination/ &

Контрольные суммы помогают экономить время

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

rsync -avzc /path/to/source/ /path/to/destination/

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

Определенные типы файлов

Вы можете сказать Rsync включить или исключить определенные типы файлов с помощью опций include и exclude. Например, чтобы синхронизировать только текстовые файлы, вы можете ввести:

rsync -avz --include '*.txt' --exclude '*' /path/to/source/ /path/to/destination/

Здесь --include говорит Rsync включать только файлы .txt, а --exclude говорит Rsync исключать всё остальное.

Логирование прогресса резервного копирования файлов

Во время операции резервного копирования может быть важно знать, что было передано и когда. Rsync имеет опцию для этого:

rsync -avz --log-file=rsync.log /path/to/source/ /path/to/destination/

Эта команда создает или дополняет журналы в файл rsync.log.

Расширенные возможности

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

rsync -avz --bwlimit=1000 /path/to/source/ /path/to/destination/

Это ограничит полосу пропускания до 1000 КБ/с.

Работа в режиме демона

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

[backup] path = /path/to/share comment = Backup Directory read only = no list = yes uid = root gid = root auth users = username secrets file = /path/to/rsyncd.secrets

В режиме демона Rsync слушает запросы без необходимости в SSH. Однако обязательно защитите эту настройку с помощью брандмауэра и методов аутентификации.

Автоматизация

Для регулярного резервного копирования Rsync можно автоматизировать с помощью cron заданий в Linux. Это гарантирует, что резервные копии будут выполнены в заданное время без какого-либо ручного вмешательства. Например, чтобы настроить ежедневное резервное копирование в 2 часа ночи, отредактируйте файл crontab, используя следующее:

crontab -e

Добавьте следующую строку:

0 2 * * * rsync -avz /path/to/source/ /path/to/destination/

Этот cron-задание выполнит команду Rsync каждый день в 2 часа ночи.

Заключение

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

Если вы найдете что-то неправильное в содержании статьи, вы можете


Комментарии