Как использовать Rsync в Linux?
Инструкция по использованию небесполезной утилиты Rsync для синхронизации файлов и каталогов между удаленными серверами, а также на локальной машине на базе операционных систем семейства Linux.
Что такое Rsync?
Rsync - это remote sync или удаленная синхронизация, является средством удаленной и локальной синхронизации файлов. Он использует алгоритм, который минимизирует объем копируемых данных, перемещая только те части файлов, которые были изменены.
Утилита в основном используется для синхронизации деревьев веб-сайтов от промежуточных до рабочих серверов, а также может использоваться для резервного копирования ключевых областей файловых систем через cron. Rsync помогает легко передавать большие объемы данных, обеспечивая сверхбыстрое и эффективное резервное копирование.
Основной синтаксис
Синтаксис утилиты rsync очень прост и похож на ssh, scp и cp.
Для создания тестовых директорий и файлов с помощью выполните следующие команды:
mkdir directory1
mkdir directory2
touch directory1/file{1..50}
В результате в каталоге directory1 появятся 50 пустых файлов. Для просмотра можно выполнить команду:
Для синхронизиронизаци каталогов directory1 и directory2 на одной операционной системе, введите:
Ключ -r обеспечивает рекурсивную синхронизацию каталогов.
Вместо опции -r чаще всего на практике используют опцию -a. Опция позволяет выполнять рекурсивную синхронизацию, сохраняет символические ссылки, специальные файлы и файлы устройств, время модификации, группу, владельца и права.
Синхронизация удаленной системы
Синхронизация с удаленным каталогом выполняется по аналогии с синхронизацией локальных каталогов. Используйте команду в следующем формате:
В терминах git данную операцию можно назвать push. Операцию аналогичную pull также можно выполнить:
Полезные опции
Rsync предоставляет множество опций для изменения поведения утилиты по умолчанию.
Если вы передаете файлы, которые еще не были сжаты, например, текстовые файлы, то включить сжатие можно с помощью опции -z:
Для отображения процесса синхронизации можно использовать флаг -P:
Вывод в консоль будет выглядеть примерно следующим образом:
sending incremental file list file1 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=99/101) file10 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=98/101) file2 0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=87/101) …