Копіювання та резервне копіювання файлів і папок за допомогою утиліти Rsync | INTROSERV

Копіювання та резервне копіювання файлів і папок за допомогою утиліти Rsync

Rsync — це швидкий і універсальний інструмент для копіювання файлів і папок. Утиліта може копіювати дані як локально, так і на інші хости, включаючи Cloud Storage від Introserv. Опції утиліти дозволяють контролювати багато аспектів копіювання та дзеркалювання даних. Однією з головних особливостей є можливість стиснення даних під час надсилання, що дозволяє пришвидшити процес копіювання між серверами. Ще одна перевага — пропуск ідентичних файлів під час копіювання. Тому копіюватимуться або передаватимуться лише файли, що відрізняються, що, безсумнівно, заощадить час при синхронізації великих каталогів.

Опції утиліти

Розглянемо приклади використання Rsync для копіювання файлів і каталогів у віддалене Cloud Storage від Introserv за протоколом SSH. Важливо! Аналогічні команди із зазначенням цільового сервера дозволять копіювати каталоги і файли на будь-який віддалений сервер по SSH.

Розглянемо деякі основні опції утиліти, які використовуватимуться найчастіше. Більш детальний список доступних опцій можна знайти в документації man (команда man rsync):

-v – виведення детальної інформації про процес
-c – перевірка контрольних сум файлів
-q – мінімум інформації
-a – режим архівування
-R – відносні шляхи
-y – не перезаписувати новіші файли
-b – створення резервної копії
-l – копіювання символічних посилань
-L – копіювання вмісту посилань
-H – копіювання жорстких посилань
-g – збереження групи
-p – збереження прав доступу до файлів
-t – збереження часу модифікації
-x – робота лише в даній файловій системі
-e – використання іншого транспортного протоколу (наприклад, ssh)
-z – стиснення файлів перед передачею
--delete – видалення файлів, відсутніх у джерелі
--exclude – виключення файлів
--recursive – рекурсивний обхід каталогів
--no-recursive – вимкнення рекурсії
--progress – відображення прогресу передачі файлів
--stat – відображення статистики передачі
--max-size – максимальний розмір файлу для передачі
--bwlimit – обмеження швидкості передачі файлів

Коротке пояснення синтаксису

rsync -az --progress /home/user/test.file boxxxx@boxxxxx.introserv.cloud:/remote_folder/

-az --progress – опції, що вказують на необхідність архівувати файл, що передається, стиснути його перед передачею, а також відобразити прогрес копіювання на екрані

/home/user/test.file – шлях до файлу і сам файл, який необхідно передати

boxxxx@boxxxxx.introserv.cloud: – ресурс призначення (у нашому прикладі це хмарне сховище, але це також може бути віддалений сервер). boxxxx — ім'я користувача, після знака @ вказується ім'я ресурсу або IP-адреса віддаленого сервера

/remote_folder/ – папка на віддаленому ресурсі. У нашому прикладі — в Introserv Cloud Storage.

Копіювання одного файлу в папку на віддаленому сховищі

rsync -az --progress /home/user/Desktop/test.file boxxxxx@boxxxxx.introserv.cloud:/remote_folder/

Вам буде запропоновано ввести пароль для підключення до сховища. Введіть пароль і продовжте — ви побачите прогрес і швидкість передачі файлу.

Копіювання папки в папку на віддаленому сховищі

Зверніть увагу на слеші в рядках вихідної папки та папки призначення. Відсутність слеша у вихідній папці означає, що ми хочемо рекурсивно перенести локальну папку Desktop з усім її вмістом у папку remote_folder.

rsync -azr --progress /home/user/Desktop boxxxx@boxxxx.introserv.cloud:/remote_folder/

Ви побачите каталог і всі файли всередині нього в процесі передачі.

Копіювання вмісту локальної папки в папку на віддаленому сховищі

Зверніть увагу на слеш наприкінці вихідної папки. Його наявність означає, що утиліта повинна скопіювати вміст локальної папки в папку на віддаленому сховищі.

rsync -avzr --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Ви побачите прогрес і швидкість копіювання.

Копіювання папки з віддаленого сховища в папку на локальному сервері

За допомогою Rsync можна ініціювати копіювання папки з віддаленого сховища. Команда виглядає наступним чином:

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder /home/user/Desktop/

Ви побачите прогрес і швидкість копіювання віддаленої папки в папку на локальному сервері.

Копіювання вмісту папки з віддаленого сховища в папку на локальному сервері

Тут також варто звернути увагу на слеш наприкінці шляху вихідної папки. Його наявність означає, що необхідно скопіювати лише вміст папки.

rsync -zra --progress boxxxxx@boxxxxx.introserv.cloud:/remote_folder/ /home/user/Desktop/

Копіювання вмісту папки з виключенням та/або включенням файлів

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

rsync -azr --progress --include 'test.file' --exclude 'test.file2' /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

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

Копіювання лише файлів, що відрізняються від файлів у папці призначення

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

rsync -azrc --progress /home/user/Desktop/ boxxxx@boxxxx.introserv.cloud:/remote_folder/

Ви побачите, що у віддалену папку були скопійовані лише файли, що відрізняються, за винятком файлів, які вже знаходяться на віддаленому сховищі.

Використання Rsync по SSH з нестандартним портом SSH

Для передачі файлів з/на сервер зі зміненим портом SSH використовуйте опцію -e 'ssh -p номер_порту'.

Команда для копіювання файлу на сервер, на якому порт SSH змінено на 44, буде виглядати наступним чином:

rsync -azrc --progress -e 'ssh -p44' /home/user/Desktop/ user@server_ip:/remote_folder/

VAT

  • Other

    Other

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    %
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • Other
  • canada
  • poland
  • european-union
  • france
  • germany
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria