Незалежно від того, чи ви адміністратор, чи звичайний користувач, вам, швидше за все, потрібно буде регулярно створювати резервні копії своїх файлів або синхронізувати їх між кількома системами. Якщо це завдання вимагає кожного разу перезаписувати всі файли, це займе багато часу та втомить вас; Тут вам на допомогу приходить інструмент Linux Rsync для віддаленого сервера. Цей посібник ознайомить вас із найкориснішими командами Rsync, що дозволить вам використовувати його швидкі та безпечні функції.
Що таке утиліта Rsync?
Віддалена синхронізація (Rsync) це добре відома команда Linux/Unix, яку можна використовувати для копіювання та синхронізації файлів і каталогів через віддалений доступ або локально. Використання команди Rsync дозволяє виконувати різноманітні завдання, пов’язані з даними, наприклад синхронізацію, копіювання та створення резервних копій. Крім того, ви можете віддзеркалити свою систему Linux на іншу.
Основна ідея використання Rsync для віддаленого сервера полягає в тому, щоб скористатися перевагами його швидкої передачі файлів; для перетворення даних між двома джерелами враховуються лише відмінності між ними. Іншими словами, використання команди Rsync допоможе вам уникнути втрати часу на сліпу передачу даних, оскільки вона лише враховує відмінності між двома системами Linux.
Навіщо використовувати Rsync?
Як ви, можливо, вже знаєте, доступні різні інструменти резервного копіювання. Питання в тому, що робить інструмент Rsync унікальним у порівнянні з іншими утилітами чи командами?
Наприклад, ви можете використовувати Протокол передачі файлів (FTP) мати локальну копію вашого веб-сайту або SCP (протокол безпечного копіювання) для цього завдання. Однак ці два мають недоліки. FTP не включає шифрування даних, на що ми не сподіваємося, і хоча SCP не має проблем із незашифрованим передаванням, як FTP, все одно для передачі потрібно більше часу, оскільки для цього створюється тунель.
Таким чином, як альтернативне вирішення цих проблем, ми можемо використовувати Rsync для віддаленого сервера з шифруванням на основі ключа (просто називається Rsync SSH або Rsync через SSH), яке запобігає надсиланню дубльованих даних і використовує ключ SSH. Слід також зауважити, що Rsync використовує стиснення та розпакування для отримання та надсилання даних, що призводить до меншого використання пропускної здатності.
Як встановити Rsync?
Можливо, у вашій системі вже встановлено Rsync; тим не менш, давайте розберемося в деталях. Перш ніж це зробити, будь ласка, зверніть увагу, що SSH має бути вже встановлено як у вихідній, так і в системі призначення, оскільки ми хочемо використовувати Rsync через SSH.
Крок 1: перевірка версії SSH
Ви можете перевірити версію SSH за допомогою такої команди:
ssh -V
Для Rsync на віддаленому сервері вам знадобиться локальний сервер, він же джерело, і віддалений сервер. Ви також повинні переконатися, що локальний сервер має права адміністратора (sudo).
Крок 2: Встановлення Rsync Linux
Наступна команда дозволить вам інсталювати Rsync на Ubuntu, Linux Mint і Debian:
sudo apt install rsync -y
Якщо ви використовуєте інші дистрибутиви Linux, як-от Fedora, CentOS, AlmaLinux і Red Hat, введіть таку команду, щоб установити службу Rsync на віддалений сервер у вашій системі:
sudo dnf install rsync
Примітка: apt — це корисний інструмент встановлення пакунків, який використовується в дистрибутивах на основі Debian.
Крок 3: Запуск Rsync
Тепер вам потрібно запустити, а потім увімкнути Rsync, щоб почати використовувати його за допомогою таких команд:
sudo systemctl start rsync
sudo systemctl enable rsync
Крок 4: перевірка інсталяції Rsync
Введіть наступну команду, щоб перевірити, чи правильно ви встановили Rsync і перевірити, яку версію ви використовуєте у своїй системі Linux:
rsync --version
У наступному розділі ми обговоримо, як використовувати можливості цього інструменту для створення резервних копій за допомогою автентифікації на основі ключів.
Як створити резервні копії за допомогою Rsync через SSH?
Створення інкрементних резервних копій є одним із випадків використання Rsync через SSH. Будь ласка, зверніть увагу на наступну команду, щоб зрозуміти, як вона працює:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Виконання наведеної вище команди допоможе вам синхронізувати sourceDir і Напрям призначення. Ця команда містить інші параметри, з якими ви повинні бути знайомі, наприклад -a (архів) і -v (дослівно). Зауважте, що -e ssh параметр вимагає, щоб підключення Rsync було через протокол SSH.
Якщо ви хочете SSH з'єднання щоб бути прийнятим через порт, відмінний від порту за замовчуванням (порт 22), потрібно вказати номер порту після -e ssh. Перегляньте наступну команду, щоб зрозуміти, як вона працює.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
У наведеній вище команді ми припускаємо, що ми хочемо використовувати 1998 як порт SSH, а не 22.
Rsync до віддаленого сервера через SSH має інші параметри, які можуть бути дуже корисними. Наприклад, використовуючи – частковий опція дає змогу продовжити попередню часткову передачу у разі таких проблем, як переривання Rsync. Ви також можете дізнатися про поточний хід передачі файлу за допомогою – прогрес варіант. Крім того, утиліта Linux Rsync для віддаленого сервера дозволяє використовувати ці дві функції одночасно. Для цього ви можете використовувати -p прапорець у командному рядку.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Rsync до віддаленого сервера за допомогою ключової команди дозволяє стискати дані перед передачею їх до місця призначення. Незважаючи на те, що він використовуватиме ваш центральний процесор для завершення стиснення, він все одно є дуже корисним, оскільки пришвидшує передачу файлів і вимагає меншого використання пропускної здатності.
Ви можете використовувати команду Rsync для копіювання файлів і каталогів, віддалених або локальних. Головною перевагою Rsync є те, що він заснований на дельта-алгоритм передачі, що запобігає копіюванню дубльованих даних із джерела до місця призначення. Як згадувалося раніше, ця функція утиліти Rsync для віддаленого сервера допоможе вам, якщо ви хочете виконувати щоденне резервне копіювання та дзеркальне відображення системи. Маючи це на увазі, давайте використаємо команду Rsync для локальних випадків використання.
Як використовувати Rsync для локальної синхронізації?
Перш ніж ми заглибимося в локальну синхронізацію та як використовувати для неї команду Rsync, вам слід знати загальну структуру локальної синхронізації, яка показана нижче:
rsync [options] [Source] [Destination]
Копіювання файлів локально
Припустімо, ми хочемо синхронізувати або скопіювати файл із каталогу робочого столу (так званого Cloudzy) до /головна/Громадський папка; ось що потрібно ввести:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
Наведена вище команда Rsync містить три параметри, як -звх; за допомогою -z, ваш файл буде стиснутий під час передачі. v варіант означає багатослівний вивід, а h варіант це те, що допомагає нам читати вихідні дані як люди, тобто відображати вихідні дані, зрозумілі людині.
Копіювання каталогів локально
Якщо ми хочемо скопіювати каталог робочого столу (називається Cloudzy) до /головна/Громадський папка; вам потрібно ввести команду нижче:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
The -a Параметр у цій команді архівує каталоги та файли під час синхронізації.
Ви можете швидко перевірити список каталогів цільової папки, щоб перевірити, чи скопійовано каталог чи ні. Для цього скористайтеся такою командою:
ls -ld /home/Public
Синхронізація файлів і каталогів рекурсивно та локально (рекурсивний Rsync)
Що робити, якщо в /desktop/Cloudzy, і ви хотіли скопіювати їх рекурсивно за допомогою команди Linux Rsync?
У цьому випадку ви використовуєте -r варіант для рекурсивної синхронізації локальних файлів і каталогів. Ви також можете використовувати параметр архіву (-a) оскільки він має інші випадки використання, наприклад рекурсивне копіювання. Перегляньте наступну команду, щоб ознайомитися з рекурсивними командами Rsync.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
Копіювання каталогів і файлів з локальної системи на віддалену
Окрім характеристик Linux Rsync для віддаленого сервера, про які ми згадували в попередніх розділах, ця добре відома команда також дозволяє синхронізувати файли та каталоги з локальної машини на віддалену систему.
Припустімо, ми хочемо скопіювати папку (/desktop/Cloudzy/нова папка) з локальної машини на віддалену систему (з 192.168.1.79) під /mycpt; ось приклад, який показує, як це працює:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Як скопіювати каталоги без файлів за допомогою Rsync?
У деяких випадках ми можемо захотіти використовувати можливості Linux Rsync для віддаленого сервера для копіювання каталогів без файлів; ця синхронізація може відбуватися з віддаленої машини на локальну систему або навпаки.
У цій статті ми використовували віддалену систему в 192.168.1.79. Припустимо, ми маємо це під /mycpt і хочете скопіювати папку /desktop/Cloudzy каталог з локальної системи без включення його файлів. Для цього введіть команду нижче:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
Інші корисні команди Rsync
Тут ми обговоримо деякі додаткові команди Linux Rsync, які можуть бути практичними для вас.
Визначте максимальний розмір для передачі файлів у Rsync
Ви можете визначити граничний розмір для передачі файлу за допомогою команди Rsync, яка корисна, якщо ви регулярно запускаєте Rsync на віддалений сервер і локальну машину, де пропускна здатність і час є важливими факторами, які слід враховувати. Зверніть увагу на таку команду, щоб ознайомитися з налаштуванням обмежень розміру для передачі файлів Rsync:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Визначте мінімальний розмір для передачі файлів у Rsync
Подібно до встановлення максимального розміру для передачі файлу, ви можете визначити мінімальний розмір файлу, який ви хочете передати за допомогою Rsync до інструменту віддаленого сервера. У команді нижче ми встановимо мінімальний розмір файлу 10 Кб:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
Видаліть файли з джерела після завершення синхронізації
Коли ви закінчите використовувати команду Rsync, можливо, вам більше не знадобиться мати файл у вихідній системі. У цьому випадку ви можете скористатися командою Linux Rsync, як показано нижче, щоб видалити файли з джерела:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Синхронізація сухого ходу
Якщо ви вперше використовуєте утиліту Linux Rsync і не знайомі з її параметрами, a сухий біг це правильний шлях. Коли ви використовуєте сухий запуск із Rsync, він не змінюватиме файли, але показує результат команди. Переконавшись, що ви хочете виконати команду, ви можете видалити –сухий хід з нього та виконайте його на терміналі. Подивіться на наступну команду, щоб дізнатися більше про функцію сухого запуску.
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Повторення: Використання команд Linux Rsync
У цій статті пояснюється, як використовувати можливості Linux Rsync для віддаленого сервера (і Rsync для локального сервера) для різних випадків використання, включно з дзеркальне відображення системи, створюючи резервну копію файлів і копіюючи файли та каталоги локально та віддалено за допомогою ефективного підходу. Ця добре відома команда Linux дає змогу швидко передавати файли, а також використовувати SSH і стиснення даних.
Отримайте собі економний або преміальний Linux VPS для розміщення вашого веб-сайту або віддаленого робочого столу за найнижчою ціною. VPS працює на Linux KVM для підвищення ефективності та працює на потужному апаратному забезпеченні з накопичувачем NVMe SSD для збільшення швидкості.
ДетальнішеВи можете максимально використати цю операційну систему, отримавши a Linux VPS рішення від Cloudzy, яке дає вам змогу скористатися перевагами планів хостингу на основі KVM. Ми з гордістю пропонуємо вам високопродуктивні послуги VPS із часом безвідмовної роботи 99,95%, стабільністю, мінімальною затримкою, всесвітніми центрами обробки даних (12 локацій), надшвидким накопичувачем SSD і цілодобовою технічною підтримкою. Ви можете почати використовувати свій Linux VPS за $4,95 і масштабувати його, якщо вам потрібне більш просунуте рішення.
FAQ
Який порт TCP використовує Rsync?
SSH зазвичай використовує порт 22 як порт за замовчуванням. Таким чином, якщо використовувати rsync через SSH, він працюватиме на цьому конкретному порту. З іншого боку, під час використання демона Rsync використовуватиметься порт 873.
Що таке Rsync?
Rsync — це утиліта Linux, яка може синхронізувати файли та каталоги віддалено або локально. Використання команди Rsync дозволяє виконувати різноманітні завдання, пов’язані з даними, наприклад синхронізацію, копіювання та створення резервних копій.