Терминал Тутс

20 лучших примеров Rsync в Linux

20 лучших примеров Rsync в Linux

Команда Rsync (удаленная синхронизация) - это утилита Linux / Unix, используемая для синхронизации и копирования файлов и каталогов локально или удаленно. Большинство компьютерных фанатов Linux используют Rsync для зеркалирования, резервного копирования или переноса данных между папками, дисками и сетями. Одна примечательная особенность команды Rsync заключается в том, что она использует «алгоритм дельта-переноса.”

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

Установка Rsync в Linux

Команда Rsync предустановлена ​​в большинстве операционных систем Linux. Однако это может быть не так для некоторых минимальных установок. Вы можете установить Rsync, выполнив следующие команды в терминале.

На CentOS и RHEL

yum install rsync -y

В Ubuntu и других дистрибутивах Debian

sudo apt install rsync -y

Базовый синтаксис Rsync

параметры rsync источник назначения

Некоторые из стандартных опций / параметров, используемых с командой Rsync:

-v: -verbose Подробный вывод
-r: рекурсивно копирует данные
-z: сжать данные файла
-h: выдает вывод в удобочитаемом формате
-a: архивировать файлы и каталог при синхронизации
-progress Показывает ход выполнения текущих задач Rsync.

Вы можете увидеть все параметры, доступные для команды Rsync, используя параметр «-help».

$ rsync --help

Команда справки rsync

20 лучших примеров Rsync в Linux

Имея в виду эту подробную информацию, давайте начнем с 20 полезных примеров команд Rsync, которые вы можете использовать с системами Linux. Наша предпочтительная операционная система - Ubuntu 20.04 LTS; однако синтаксис также должен работать для других дистрибутивов Linux с установленным Rsync.

1. Копирование / синхронизация файлов локально с параметром -v (подробный)

Это самая простая команда Rsync даже для новичка. В этом примере мы будем копировать файлы между 'Оригинал'на рабочем столе в папку'Резервное копирование'каталог в' / etc.' папка. Мы включим параметр -v (Verbose), чтобы rsync мог предоставить информацию о том, что происходит.

rsync -v Оригинал /

rsync -v (подробная) команда

При использовании Rsync следует отметить одну вещь: если целевой каталог не существует, он будет автоматически создан. Давайте посмотрим на пример ниже, где мы хотим скопировать файлы в каталог «Фосс"Этого не существует.

Создайте каталог с помощью Rsync

2. Синхронизировать / копировать файлы и каталоги рекурсивно с параметром -r

В приведенной выше команде, если в папке 'Оригинал'папка, она будет пропущена. Это показано на изображении ниже.

Базовая команда Rsync

Чтобы преодолеть это, используйте параметр -r (рекурсивный).

Рекурсивно синхронизировать файлы с -r

3. Синхронизация / копирование файлов между локальным и удаленным компьютерами

Перед выполнением этой задачи вам необходимо знать несколько параметров удаленного сервера / машины: IP-адрес, имя пользователя и пароль пользователя.

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

rsync [параметры] [файлы] [удаленное имя пользователя] @ [IP-адрес]: / [назначение]

Скопируем файлы из нашего 'Оригинал'на рабочем столе на удаленный сервер.

Синхронизация / копирование файлов удаленно с помощью Rsync

4. Синхронизация / копирование файлов и каталогов с удаленного сервера на локальный ПК

Как и в предыдущей команде, нам нужно будет знать IP-адрес удаленного сервера. В этом примере мы будем синхронизировать файлы в папке 'Резервное копирование'папку в домашнем каталоге сервера на наш локальный компьютер.

rsync -rv tuts @ 192.168.1.64: / home / tuts / Backup / home / tuts / Desktop / Original

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

5. Используйте Rsync через SSH с параметром -e

Для обеспечения безопасности файлов и папок мы будем использовать протокол Rsync over Secure Shell (SSH). Кроме того, при предоставлении пароля root / пользователя SSH будет предоставлять услуги шифрования, гарантируя их безопасность.

Чтобы использовать SSH, мы добавим параметр -e, который указывает протокол, который мы хотим использовать.

 rsync -vre ssh Оригинал / * tuts @ 192.168.1.64: / home / tuts

Используйте Rsync через SSH

6. Показать прогресс с помощью команды Rsync

В ситуациях, когда вы копируете несколько файлов или большой файл, знать о ходе выполнения будет эффективно. К счастью, в rsync есть такая опция - '-прогресс' вариант.

sudo rsync -rv --progress Original / * / etc / Foss

Показать прогресс с Rsync

7. Используйте Rsync с параметром -include

Бывают ситуации, когда вы хотите синхронизировать только определенные файлы. С помощью команды Rsync вы вызываете '-включать'возможность выполнить задачу. В этом примере мы будем синхронизировать только файлы, начинающиеся с буквы «I».

sudo rsync -vr --include 'I *' Исходный / / etc / Backup /

Используйте параметр -include с Rsync

8. Используйте Rsync с опцией -exclude, чтобы игнорировать определенные файлы

С помощью Rsync '-исключать'вариант, вы можете исключить файлы, которые вы не хотите синхронизировать / копировать. В этом примере мы хотим игнорировать все файлы, начинающиеся с буквы «I».

sudo rsync -vr --exclude 'I *' Исходный / / etc / Backup /

Используйте Rsync с параметром -exclude

Как вариант, вы можете использовать оба параметра в одной команде. См. Пример ниже.

sudo rsync -vr --exclude '*' --include 'I *' Original / / etc / Backup /

Мы исключаем все файлы, кроме файлов, начинающихся с буквы 'I.'

Используйте оба параметра -include и -exclude

9. Используйте Rsync с командой -delete

Бывают ситуации, когда файлы присутствуют в целевом каталоге, но не в исходной папке. Для синхронизации лучше всего сначала удалить такие файлы из каталога назначения. К счастью, Rsync поставляется с '-Удалить'опция, которая делает это автоматически.

Если файл присутствует в каталоге назначения, но отсутствует в источнике, он удалит его.

rsync -vr --delete / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Используйте Rsync с опцией-delete

10. Установите максимальный размер файлов для передачи с помощью Rsync

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

Например, '-максимальный размер = 100 КБ'будет передавать только данные размером не более 100 килобайт.

rsync -vr --max-size = '200k' / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Установите максимальный размер с помощью команды Rsync

11. Автоматическое удаление исходных файлов после успешной передачи

Возьмем ситуацию, когда у вас есть удаленный сервер резервного копирования и каталог резервных копий на вашем ПК. Вы создаете резервную копию данных в резервной папке на вашем ПК перед синхронизацией с Backup-сервером. После каждой синхронизации вам нужно будет удалять данные в каталоге резервного копирования.

К счастью, вы можете сделать это автоматически с помощью '--удалить исходные файлы' вариант.

Удалить исходные файлы после успешной передачи

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

12. Выполните пробный прогон с помощью Rsync

Для новичков, которые не уверены в команде Rsync, вы можете испортить содержимое целевого каталога, и отмена может быть столь же утомительной. С '-прогон, репетиция', команда Rsync даст вам вывод о том, что будет выполнено, но не сделает этого.

Следовательно, вы можете посмотреть на этот вывод, если это то, что вы ожидаете, прежде чем удалять '-прогон, репетиция' вариант.

rsync -vr --dry-run Оригинал / * tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Выполните пробный запуск с помощью Rsync

13. Установите предел пропускной способности, необходимый для передачи файлов.

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

Этот тариф рассчитывается в килобайтах. Следовательно, когда '-bwlimit = 1000'означает, что в секунду может передаваться только 1000 Кбайт.

rsync -vr --bwlimit = 1000 Оригинал / * tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Установите ограничение пропускной способности, необходимое для передачи файлов

14. Синхронизируйте все файлы с помощью Rsync

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

rsync -vrW Original / * tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Синхронизировать весь файл с помощью Rsync

15. Не синхронизировать / копировать измененные файлы в целевом каталоге

Бывают ситуации, когда вы внесли изменения в файлы, находящиеся в папке назначения. Если вы запустите команду Rsync, эти изменения будут перезаписаны изменениями в исходном файле. Чтобы этого не произошло, используйте опцию '-u'.

rsync -vu Original / * tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Используйте опцию 'u', чтобы не изменять файлы в папке назначения

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

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

rsync -avzi Оригинал / Резервная копия /

Используйте параметр -i, чтобы просмотреть разницу в файлах

Сформируйте вывод, показанный на изображении выше, и мы увидим файл с именем 'Heloo.py ' отсутствует в целевом каталоге. Давайте посмотрим на некоторые из этих параметров.

d: показывает изменение в конечном файле
f: представляет файл
t: показывает изменение отметок времени
s: указывает на изменение размера файла

17. Используйте Rsync только для копирования структуры каталогов

Вы можете использовать Rsync для синхронизации только структуры каталогов, если файлы вас не интересуют. Нам нужно будет использовать параметры -f ”+ * /” -f ”- *” перед исходным каталогом.

rsync -av -f "+ * /" -f "- *" / home / tuts / Desktop / Original / / home / tuts / Documents /

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

18. Добавить отметку даты в имя каталога

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

Для этого мы добавим $ (дата + \\% Y - \\% m - \\% d) в целевой каталог.

sudo rsync -rv Исходный / / etc / $ (дата + \\% Y - \\% m - \\% d)

Добавить дату в каталог

19. Копировать один файл локально

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

rsync -v Оригинал / heloo.py Резервное копирование /

Синхронизировать один файл локально

20. Копирование нескольких файлов удаленно

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

rsync -vr / home / tuts / Рабочий стол / Оригинал / heloo.py / home / tuts / Рабочий стол / Резервное копирование / индекс.html tuts @ 192.168.1.64: / home / tuts / Резервное копирование

Копирование нескольких файлов одновременно

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

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...