Преимущества команды «Rsync»
- Это быстрее, чем другие инструменты, потому что он копирует только те файлы из исходного расположения в целевое расположение, которые изменены или не существуют в целевом расположении.
- Он поддерживает неполную передачу.
- Для этого требуется меньшая полоса пропускания, поскольку он сжимает данные во время передачи.
- Это уменьшает накладные расходы на передачу, поскольку менее важные данные могут передаваться без шифрования.
Синтаксис
Синтаксис команды «rsync» приведен ниже:
rsync [Опция] Источник-назначениеЗдесь пути источника и назначения могут быть локальными или удаленными. С этой командой можно использовать разные типы параметров для разных целей.
Полезные опции команды «Rsync»
Некоторые часто используемые параметры команды «rsync» объясняются ниже:
Вариант | Цель |
---|---|
-С | Он используется для сжатия данных во время передачи. |
-р | Он используется для рекурсивной синхронизации данных без сохранения каких-либо прав доступа к файлам. |
-а | Он используется для рекурсивной синхронизации данных с сохранением всех прав доступа к файлам. |
-б | Он используется для сохранения резервной копии данных во время передачи. |
-в | Он используется для отображения вывода в подробном формате. |
-п | Он используется для отображения хода передачи. |
-н | Он используется для проверки того, работает ли синхронизация перед передачей файлов или папок. |
Список из 15 примеров «Rsync»
- Локальная передача одного файла и папки
- Локальная передача нескольких файлов и папок
- Передача одного файла и папки удаленно
- Удаленная передача нескольких файлов и папок
- Отображение хода передачи
- Сжимайте данные во время передачи
- Передача с ограничением пропускной способности
- Передача файлов и папок рекурсивно
- Перевод с ограничением минимального размера
- Перевод с ограничением максимального размера
- Передача файлов определенного типа
- Отображение различий между исходным и целевым файлами
- Включить или исключить файлы во время передачи
- Синхронизируйте данные в сухом режиме
- Удалить исходные файлы и папки после переноса
Локальная передача одного файла и папки
Запустите команду «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 отдел.jsonrsync -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.