Як використовувати команду Rsync у Linux?

Rsync, скорочення від «remote sync» (віддалена синхронізація), — це інструмент, призначений для локальної та віддаленої синхронізації файлів. Він ефективно передає дані, виявляючи та копіюючи лише змінені частини файлів, а не весь файл, що зменшує обсяг переданих даних і підвищує швидкість.

Команда rsync дозволяє копіювати та синхронізувати дані як локально, так і віддалено між різними каталогами, пристроями зберігання даних та мережами. Вона зазвичай використовується для резервного копіювання даних та дзеркального відображення між двома системами Linux. Rsync входить до складу більшості сучасних дистрибутивів Linux, тому додаткова інсталяція не потрібна.

У цьому посібнику ми продемонструємо основні та просунуті способи використання команди rsync для передачі файлів як локально, так і віддалено в системах Linux. Ви можете запускати rsync без прав суперкористувача.

Синтаксис Rsync

Основний синтаксис rsync наведено нижче:

rsync [OPTIONS] SOURCE DESTINATION

Тут ви вказуєте параметри разом із шляхами джерела та призначення для передачі файлів.

Як використовувати команду Rsync? (Приклади Rsync)

Нижче ми перелічили типові випадки використання команди rsync:

Копіювання файлів локально (локальне копіювання файлів Rsync)

За допомогою команди rsync ви можете передавати або синхронізувати файл у межах однієї системи. Це дозволить скопіювати певний файл з одного каталогу в інший.

Наприклад, щоб скопіювати файл «example.text» до папки /testfilesDirectory/:

$ rsync -zvh example.text /testfilesDirectory/

Якщо папка призначення не існує, rsync автоматично створить її.

Каталоги Rsync (папка Rsync до папки)

Наступна команда копіює або синхронізує всі файли з одного каталогу в інший на тій самій системі. Наприклад, скопіюйте каталог ‘/testfilesDirectory/’, що містить текстовий файл, до каталогу ‘test’.

$ rsync -avzh /testfilesDirectory/ test

Синхронізація папки з локального сервера на віддалений

Щоб перенести каталог з локальної системи на віддалений сервер, скористайтеся наступною командою. Наприклад, щоб синхронізувати папку /testfilesDirectory/, що містить текстові файли, з вашого локального комп'ютера на віддалений сервер, скористайтеся цією командою:

# rsync -avzh /testfilesDirectory/ root@remote-ip-address:/root/

Синхронізація каталогів з локального сервера на віддалений

Щоб синхронізувати каталог з віддаленого сервера на локальний комп'ютер, скористайтеся цією командою. Наприклад, скопіюйте каталог «/testfilesDirectory/» з віддаленого сервера в «/test/» на вашій локальній системі.

$ rsync -avzh root@remote-server-ip:/testfilesDirectory/ /test

Rsync через SSH

За допомогою rsync ви можете безпечно передавати дані через SSH, забезпечуючи шифрування та захист конфіденційної інформації під час передачі. Використання SSH також захищає облікові дані для входу.

Щоб використовувати rsync з SSH, додайте опцію -e:

$ rsync [OPTIONS] -e ssh /source-path/ user@remote:/destination-path

Копіювання файлу з віддаленого сервера на локальний сервер за допомогою SSH (Rsync на віддалений сервер)

Щоб перенести файл з віддаленого сервера на локальний комп'ютер за допомогою SSH, вкажіть опцію -e разом із ssh.

$ rsync -avzhe ssh root@remote-ip:/root/testfile.text /tmp

Display Progress During Rsync Folders and Files Transfer

To monitor file transfers in real-time, use the --progress option. This shows the files being copied and the estimated time remaining.

$ rsync -avzhe ssh --progress /testfilesDirectory root@remote-ip:/testfilesDirectory

Включення та виключення файлів у Rsync

Використовуйте опції --include та --exclude для фільтрування файлів під час передавання. Це дозволяє вказати, які файли або каталоги потрібно синхронізувати, пропускаючи інші.

Наприклад, щоб включити тільки файли та каталоги, що починаються з «R», і виключити все інше:

$ rsync -avze ssh --include 'R*' --exclude '*' root@remote-ip:/var/lib/rpm

Використання опції --delete в Rsync

Якщо файл або каталог існує в місці призначення, але не існує в джерелі, опція --delete гарантує, що він буде видалений під час синхронізації.

Наприклад, щоб синхронізувати каталоги та видалити зайві файли з місця призначення:

$ rsync -avz --delete root@destination-ip:/var/lib/rpm/ /root

Обмеження розміру файлів для передачі в Rsync

Щоб обмежити максимальний розмір файлів для передачі, використовуйте опцію --max-size. Це гарантує, що синхронізуються тільки файли зазначеного розміру або менші.

Наприклад, щоб передати файли розміром до 200 КБ:

$ rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ root@destination-ip:/root/tmp

Автоматичне видалення вихідних файлів після передачі

Якщо ви хочете передати файли і потім видалити їх з вихідного джерела, використовуйте опцію --remove-source-files. Це корисно для резервного копіювання, оскільки забезпечує переміщення файлів без збереження локальних копій.

$ rsync --remove-source-files -zvh backup.tar.gz root@destination-remote-ip:/tmp/backup

Виконайте пробний запуск за допомогою Rsync

Якщо ви не знайомі з rsync або не впевнені в результаті виконання команди, ви можете скористатися опцією --dry-run. Це дозволить вам переглянути зміни без внесення будь-яких модифікацій. Коли ви будете задоволені результатом, ви можете видалити --dry-run і виконати фактичну команду.

$ rsync --dry-run --remove-source-files -zvh backup.tar.gz root@remote-ip:/tmp

Rsync: встановлення обмеження на передачу файлів та пропускну здатність

Ви можете контролювати використання пропускної здатності під час передачі файлів за допомогою опції --bwlimit у rsync. Це дозволяє встановити максимальну швидкість передачі, запобігаючи надмірному навантаженню мережі.

$ rsync --bwlimit=100 -avzhe ssh /var/lib/rpm/ root@destination-ip:/root/tmp

За замовчуванням rsync передає тільки змінені блоки та байти файлу. Однак ви можете використовувати опцію W, якщо вам потрібно синхронізувати весь файл незалежно від змін.

$ rsync -zvhW backup.tar /tmp/backups/backup.tar

Переваги команди Rsync

Використовуючи Rsync, ви можете скористатися такими перевагами:

  • Ефективна передача даних: використовує алгоритм дельта для копіювання тільки змінених частин файлів, що зменшує обсяг передачі даних.
  • Віддалена синхронізація: підтримує локальну та віддалену синхронізацію файлів через SSH.
  • Інкрементальне резервне копіювання: передає тільки нові або змінені файли, що робить резервне копіювання більш ефективним.
  • Зберігає атрибути файлів: зберігає дозволи, права власності, часові мітки та символічні посилання.
  • Контроль пропускної здатності: дозволяє обмежувати використання пропускної здатності та використовує стиснення для оптимізації передачі.
  • Швидкість: часто швидше, ніж SCP, особливо для великих каталогів або раніше переданих файлів.

Висновок

На цьому ми завершуємо обговорення використання команди rsync та її функцій. Щоб дізнатися більше про розширені опції та функції, зверніться до офіційних сторінок довідки (man rsync) для детальної документації.

Отримайте високопродуктивний VPS-сервер з Host-World! Оберіть один із найкращих планів VPS-хостингу, що забезпечують швидкість, безпеку та надійність. Наші хостингові рішення, що базуються на передових технологіях, гарантують безперебійну та потужну роботу в Інтернеті. Почніть вже сьогодні!

Залиште свої відгуки

Поділіться своїми думками та допоможіть нам покращитися! Ваш відгук важливий для нас.

Завантажте своє фото