15 примеров Rsync

15 Primerov Rsync



Перенос файлов из одного места в другое — очень распространенная задача для пользователя Linux. В Linux доступно множество вариантов для выполнения этой задачи; «rsync» — один из них. Полная форма «rsync» — «Удаленная синхронизация». Это очень полезный инструмент синхронизации для локального или удаленного копирования файлов и папок из одной системы в другую. Он имеет гораздо больше преимуществ, чем другие инструменты синхронизации. Этот инструмент установлен в Linux по умолчанию. Таким образом, пользователю не требуется его установка. Преимущества и использование команды «rsync» показаны в этом руководстве на 15 простых примерах.

Преимущества команды «Rsync»

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

Синтаксис

Синтаксис команды «rsync» приведен ниже:

rsync [Опция] Источник-назначение

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







Полезные опции команды «Rsync»

Некоторые часто используемые параметры команды «rsync» объясняются ниже:



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

Список из 15 примеров «Rsync»

  1. Локальная передача одного файла и папки
  2. Локальная передача нескольких файлов и папок
  3. Передача одного файла и папки удаленно
  4. Удаленная передача нескольких файлов и папок
  5. Отображение хода передачи
  6. Сжимайте данные во время передачи
  7. Передача с ограничением пропускной способности
  8. Передача файлов и папок рекурсивно
  9. Перевод с ограничением минимального размера
  10. Перевод с ограничением максимального размера
  11. Передача файлов определенного типа
  12. Отображение различий между исходным и целевым файлами
  13. Включить или исключить файлы во время передачи
  14. Синхронизируйте данные в сухом режиме
  15. Удалить исходные файлы и папки после переноса

Локальная передача одного файла и папки

Запустите команду «ls», чтобы отобразить список файлов и папок в текущем местоположении. Затем запустите команду «rsync», чтобы локально передать файл «employees.txt» в файл «employees_copy.txt». Запустите команду «ls» еще раз, чтобы проверить, правильно ли передан файл.



$ лс
$ rsync сотрудников.txt сотрудников_copy.txt
$ лс

Следующий вывод показывает, что файл «employee.txt» успешно передан:





Предположим, содержимое временной папки необходимо перенести в папку tempdir, где в обеих папках существует файл «courses.txt». Запустите команду «ls temp», чтобы проверить содержимое временной папки. Затем запустите команду «cat temp/courses.txt», чтобы проверить содержимое этого файла. Затем запустите команду «ls tempdir», чтобы проверить содержимое папки tempdir. Затем запустите команду «cat tempdir/courses.txt», чтобы проверить содержимое этого файла.



$ лс темп
$ cat temp/courses.txt
$ лтемпдир
$ cat tempdir/courses.txt

Вывод показывает, что содержимое файла «courses.txt» папок temp и tempdir немного отличается, а файл «courses.txt» папки temp содержит больше данных, чем файл «courses.txt» папки tempdir. .

Выполните следующую команду, чтобы перенести содержимое папки temp в папку tempdir и проверьте содержимое файла «courses.txt» в папке tempdir, чтобы убедиться, что файл обновлен правильно или нет:

$ rsync -a temp/tempdir/
$ лтемпдир
$ cat tempdir/courses.txt

Следующий вывод показывает, что содержимое временной папки правильно передается в папку tempdir, а содержимое файла «courses.txt» папки tempdir обновляется правильно:

Локальная передача нескольких файлов и папок

Команду «rsync» можно использовать для локальной передачи нескольких файлов и папок. Выполните следующую команду, чтобы перенести файлы «ping1.bash» и «ping2.bash» в папку tempdir и проверить содержимое папки tempdir после передачи. Параметр -v используется с командой «rsync» для отображения вывода в подробном формате:

$ rsync -v ping1.bash ping2.bash tempdir/
$ лтемпдир

Следующий вывод показывает, что несколько файлов правильно переносятся в папку tempdir:

Выполните следующие команды, чтобы проверить содержимое папок temp, tempdir и test и перенести содержимое папок test и tempdir в папку temp:

$ лс темп
$ лтемпдир
$ л тест
$ rsync -av test/ tempdir/ temp/
$ лс темп

Вывод показывает, что содержимое папок test и tempdir успешно перенесено во временную папку. Файлы «customers.csv», «ping1.bash» и «ping2.bash» добавляются как новые файлы во временную папку:

Передача одного файла и папки удаленно

Вам необходимо установить и настроить сервер SSH в удаленном месте для удаленной передачи файлов и папок. Вы можете проверить это руководство для настройки SSH-сервера.

Выполните следующую команду, чтобы проверить размер файла «courses.txt» в текущем местоположении:

ls -la курсы.txt

Вывод показывает, что размер файла «courses.txt» составляет 65 байт:

Выполните следующую команду, чтобы передать «courses.txt» на /главная/убунту/курсы/ папка удаленного расположения, ubuntu@192.168.0.101. Вы должны предоставить пароль root удаленной машины перед передачей файла:

rsync -v курсы.txt ubuntu@192.168.0.101:/home/ubuntu/курсы/

Следующий вывод показывает, что файл «courses.txt» правильно передан на удаленный компьютер, а размер файла составляет 65 байт:

Выполните следующую команду, чтобы перенести временную папку в /главная/убунту/курсы/ папка удаленного расположения, ubuntu@192.168.0.101. Вы должны указать пароль root удаленной машины перед передачей файла, как и в предыдущей команде.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/курсы/

Следующий вывод показывает, что содержимое временной папки правильно передается на удаленный компьютер:

Удаленная передача нескольких файлов и папок

Следующая команда «rsync» передает файлы «customers.csv» и «department.json» в /главная/Убунту/файлы/ папка удаленного расположения, ubuntu@192.168.0.101.

rsync -av customers.csv Department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Следующий вывод показывает, что несколько файлов успешно перенесены в удаленное расположение:

Следующая команда «rsync» передает содержимое папок temp и test, а также файл «department.json» в /главная/Убунту/файлы/ папка удаленного расположения, ubuntu@192.168.0.101.

rsync -av temp/test/department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Следующий вывод показывает, что содержимое нескольких папок успешно перенесено в удаленное расположение:

Отображение хода передачи

Запустите команду «rsync» с параметром –progress, чтобы перенести содержимое папки tempdir в папку temp_copy с информацией о ходе выполнения.

rsync -a tempdir/ temp_copy --progress

Следующий вывод показывает, что каталог temp_copy создан локально и содержимое папки tempdir успешно перенесено в папку temp_copy:

Сжимайте данные во время передачи

Запустите следующую команду «rsync» с параметром –z, чтобы локально сжать и перенести каталог tempdir в тестовый каталог:

rsync -za tempdir/test/

Следующий вывод показывает, что сжатый каталог успешно передан локально:

Передача с ограничением пропускной способности

Запустите следующую команду «rsync» с параметром –bwlimit со значением 100, чтобы локально передать файл /etc/passwd во временную папку:

rsync -v --bwlimit=100 и т. д./временный пароль/

Следующий вывод показывает, что файл passwd успешно передан:

Рекурсивно передать файл и папку

Запустите следующую команду «rsync» с параметром –rv, чтобы локально перенести тестовую папку в папку test_bak:

rsync -rv тест/test_bak/

Следующий вывод показывает, что тестовая папка успешно перенесена в папку test_bak:

Перевод с ограничением минимального размера

Передача файлов и папок с помощью команды «rsync» может быть ограничена с помощью параметра –min-size, чтобы установить минимальный размер передаваемых файлов и папок. Выполните следующую команду «ls -la tempdir», чтобы проверить размер каждого файла и папки в этой папке. Затем запустите команду «rsync», чтобы перенести содержимое папки tempdir в папку tempdir_bak с ограничением минимального размера.

ls -la временный каталог
rsync -av --min-size='245B' tempdir/tempdir_bak

Следующий вывод показывает, что в папке tempdir существуют два файла, размер которых соответствует минимальному. Это «ping1.bash» (248 байт) и «test.txt» (34504 байт). Эти файлы переносятся в папку tempdir_bak, а остальные файлы папки tempdir опускаются:

Перевод с ограничением максимального размера

Передача файлов и папок с помощью команды «rsync» может быть ограничена с помощью параметра –max-size, чтобы установить максимальный размер передаваемых файлов и папок. Выполните следующую команду «ls -la temp», чтобы проверить размер каждого файла и папки в этой папке. Далее запустите команду «rsync», чтобы перенести содержимое папки temp в папку temp_bak с максимальным ограничением размера.

ls -la темп
rsync --max-size='250B' temp/ temp_bak/

Следующий вывод показывает, что во временной папке существует четыре файла, размер которых соответствует максимальному ограничению. Это «courses.txt» (65 байт), «employees.csv» (361 байт), «ping1.bash» (248 байт) и «ping2.bash» (244 байт). Эти файлы переносятся в папку temp_bak, а другие файлы в папке temp опускаются:

Передача файлов определенного типа

Тип файла, который будет передаваться, можно указать, указав расширение файла в команде «rsync». Запустите следующую команду «rsync», чтобы перенести все текстовые файлы из временной папки в папку mydir. Здесь расширение текстового файла обозначается с помощью «*.txt»:

rsync -v temp/*.txt mydir/

Следующий вывод показывает, что два текстовых файла, «courses.txt» и «test.txt», перенесены в папку mydir, а другие файлы временной папки опущены:

Отображение различий между исходным и целевым файлами

Когда файлы или папки переносятся из одного места в другое локально или удаленно, оба места могут содержать одни и те же файлы или папки. Различия между источником и получателем во время передачи можно проверить с помощью параметра -i с командой «rsync». Запустите следующие команды «cat», чтобы проверить содержимое исходного и целевого файлов перед передачей. Здесь файл «courses.txt» переносится во временную папку.

курсы кошек.txt
кот temp/courses.txt
rsync -avi курсы.txt темп/

Следующий вывод показывает, что файл «courses.txt» источника и получателя немного отличается. Вывод команды «rsync» показывает разницу между файлами:

Синхронизируйте данные в сухом режиме

Если вы хотите узнать, какие файлы и папки передаются командой «rsync» перед фактической передачей, лучше запустить команду «rsync» с параметром –dry-run или параметром –n. Когда команда «rsync» выполняется с этой опцией, она проверяет, какие файлы или папки копируются из исходной папки в папку назначения, но оставляет папку назначения неизменной. Запустите файл «ls –la Department.json», чтобы проверить размер файла. Затем запустите команду «rsync» с режимом –dry-run, чтобы проверить передачу «department.json» во временную папку.

ls -la отдел.json
rsync -v --dry-run Department.json temp/

Следующий вывод показывает, что размер файла «department.json» составляет 1172 байта. Размер файла показывает 1172 байта после выполнения команды «rsync» с параметром –dry-run:

Включить или исключить файлы во время передачи

Вы можете отфильтровать тип файла во время передачи из исходного местоположения в целевое, используя параметры –include и –exclude. Параметр «optionsinclude» используется для определения расширения тех файлов, которые будут переданы из источника в место назначения. Параметр –exclude используется для определения расширения тех файлов, которые не будут передаваться из источника в место назначения.

Запустите следующую папку «ls temp», чтобы проверить содержимое временной папки. Затем запустите команду «rsync» с параметрами –include и –exclude. В соответствии с командой все файлы CSV из временной папки переносятся в папку с файлами, а все текстовые файлы из временной папки во время передачи пропускаются. Затем запустите команду «ls files», чтобы проверить, какие файлы переносятся из временной папки в папку с файлами.

лс темп
rsync -a temp/ файлы/ --include=*.csv --exclude=*.txt
ls файлы

Следующий вывод показывает, что временная папка содержит два файла CSV, два текстовых файла и два файла BASH. Папка с файлами пуста перед передачей, и передаются два файла CSV и два файла BASH:

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

В предыдущих командах «rsync» исходные файлы и папки остаются в исходном расположении после переноса в целевое расположение. Но иногда требуется постоянная передача файлов и папок в место назначения. Эту задачу можно выполнить с помощью параметра –remove-source-files с командой «rsync». Запустите команду «ls», чтобы проверить все файлы и папки в текущем местоположении. Запустите команду «ls temp», чтобы проверить файлы и папки временной папки. Затем запустите команду «rsync» с параметром –remove-source-files, чтобы удалить файлы и папки исходного местоположения после завершения передачи. Запустите команду «ls» еще раз, чтобы проверить, удален ли исходный файл из исходного местоположения или нет.

лс
лс темп
rsync employees.csv temp/ --remove-source-files
лс

Следующий вывод показывает, что файл «employees.csv» из текущего местоположения переносится во временную папку, а файл «employees.csv» удаляется из исходного местоположения после переноса:

Заключение

«rsync» — очень полезный инструмент Linux, который упрощает задачу передачи файлов и папок из одного места в другое, используя различные параметры. Методы использования команды «rsync» для передачи файлов и папок из одного места в другое путем сжатия, установки размера файлов и папок, установки типа файла, установки ограничения полосы пропускания и т. д. показаны в 15 простых примерах. этот учебник. Это руководство поможет пользователям Linux правильно понять основные способы использования команды «rsync» в Linux.