Знижка 50% усі тарифи, обмежений час. Починаючи від $2.48/mo
10 хв залишилось
Безпека та мережа

Як використовувати Rsync у Linux? Rsync на віддалений сервер 💻📥

Ліллі Карнелл By Ліллі Карнелл 10 хв читання Оновлено 16 квітня 2023 р.
rsync на віддалений сервер

Чи ви адміністратор чи звичайний користувач, вам, ймовірно, потрібно регулярно створювати резервні копії файлів або синхронізувати їх між кількома системами. Якщо це вимагає перезаписування всіх файлів щоразу, це буде затратним часом і виснажливим; Саме тут вам на допомогу приходить інструмент Linux Rsync to remote server. Цей посібник познайомить вас з найнеобхідніші командами Rsync, які дозволять вам користуватися його швидкими й безпечними можливостями.

Що таке утиліта Rsync?

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

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

Навіщо використовувати Rsync?

Доступно багато інструментів для резервного копіювання. Питання в тому, що робить Rsync унікальним порівняно з іншими утилітами та командами.

Наприклад, можна скористатись Протокол передачі файлів (FTP) щоб мати локальну копію вашого сайту, або SCP (протокол безпечного копіювання) для цього завдання. Однак обидва варіанти мають недоліки. FTP не включає шифрування даних, а SCP, хоч і шифрує передачу, займає більше часу, оскільки створює туннель для передачі.

Отже, як альтернатива, можна використати Rsync з шифруванням на основі ключів (його часто називають Rsync over SSH), яке запобігає надсиланню дублів даних і використовує SSH-ключ. Варто також знати, що Rsync стискає та розпаковує дані під час передачі, що зменшує витрати пропускної здатності.

Як встановити Rsync?

Rsync, ймовірно, вже встановлений на вашій системі, але давайте розберемось детальніше. Зверніть увагу, що SSH має бути встановлений на обох системах — як на джерелі, так і на призначенні, оскільки ми хочемо використати Rsync over SSH.

Крок 1. Перевірка версії SSH

Версію SSH можна перевірити за допомогою такої команди:

ssh -V

Для синхронізації з віддаленим сервером вам потрібна локальна система (джерело) та віддалений сервер. Переконайтеся, що локальна система має права адміністратора (sudo).

Крок 2. Встановлення Rsync

Наступна команда дозволить вам встановити Rsync на Ubuntu, Debian та Linux Mint:

sudo apt install rsync -y

Якщо ви користуєтесь іншими дистрибутивами Linux, як-от CentOS, Rocky Linux, AlmaLinux та Fedora, введіть таку команду для встановлення Rsync:

sudo dnf install rsync

Примітка: apt — це корисний інструмент для встановлення пакетів у дистрибутивах на основі Debian.

Крок 3. Запуск Rsync

Тепер вам потрібно запустити Rsync і активувати його за допомогою таких команд:

sudo systemctl start rsync 
sudo systemctl enable rsync

Крок 4. Перевірка встановлення Rsync

Введіть наступну команду, щоб перевірити, чи правильно встановлено Rsync і яку версію ви використовуєте:

rsync --version

У наступному розділі ми розповімо, як використовувати цей інструмент для створення резервних копій з автентифікацією на основі ключів.

Як створити резервні копії за допомогою Rsync через SSH?

Створення інкрементних резервних копій — один із випадків використання Rsync через SSH. Зверніть увагу на таку команду, щоб зрозуміти, як вона працює:

rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir

Виконання наведеної команди допоможе вам синхронізувати sourceDir та destinationDir. Ця команда включає інші опції, з якими варто ознайомитися, наприклад -a (archive) та -v (verbose)Зверніть увагу, що -e ssh опція вимагає, щоб з'єднання Rsync проходило через протокол SSH.

Якщо ви хочете Підключення SSH отримати дозвіл через порт, відмінний від стандартного (порт 22), вам потрібно вказати номер порту після -e ssh. Подивіться на таку команду, щоб зрозуміти, як вона працює.

rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir

У наведеній команді ми припускаємо, що хочемо використовувати 1998 як порт SSH замість 22.

Rsync на віддалений сервер через SSH має інші опції, які можуть бути дуже корисними. Наприклад, використання –partial опції дозволяє вам продовжити попереднє неповне передавання у разі проблем, як-от переривання Rsync. Ви також можете дізнатися про поточний прогрес передавання файлу через –progress опцію. Крім того, утиліта Linux Rsync на віддалений сервер дозволяє вам використовувати ці два можливості одночасно. Для цього ви можете використовувати -p прапорець у командному рядку.

rsync -avP  -e ssh /sourceDir/ user@remote:/path/to/destinationDir

Rsync на віддалений сервер з командою ключа дозволяє вам стиснути дані перед їх передаванням у місце призначення. Хоча це буде використовувати ваш CPU для завершення стиснення, це все ж дуже корисно, оскільки робить передавання файлів швидшим і потребує менше пропускної спроможності.

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

Як використовувати Rsync для локальної синхронізації?

Перш ніж ми перейдемо до локальної синхронізації та того, як використовувати команду Rsync для неї, вам варто знати загальну структуру локального Rsync, яка показана нижче:

rsync [options] [Source] [Destination]

Копіювання файлів локально

Припустимо, ми хочемо синхронізувати або скопіювати файл із каталогу робочого столу (названого Cloudzy) до /home/Public папка; ось що вам потрібно ввести:

rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public

Наведена команда Rsync включає три опції як -zvh; за допомогою -z, у вас буде стиснутий файл під час передавання. v варіант означає детальний вивід, а h опція це допомагає нам читати результати в зрозумілому для людини форматі, тобто виводити дані так, щоб вони були читаємі.

Копіювання директорій локально

Якщо ми хочемо скопіювати директорію робочого стола (під назвою Cloudzy) до /home/Public папку, вам потрібно ввести команду нижче:

rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public

Той -a параметр у цій команді архівує директорії та файли під час синхронізації.

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

ls -ld /home/Public

Синхронізація файлів і директорій рекурсивно та локально (рекурсивний Rsync)

Що робити, якщо в /desktop/Cloudzyзнаходилося кілька директорій та файлів, і ви хотіли б скопіювати їх рекурсивно за допомогою команди Rsync Linux?

У цьому випадку ви використовуєте опція -r щоб рекурсивно синхронізувати ваші локальні файли та директорії. Ви також можете використовувати опція архіву (-a) оскільки вона має інші варіанти використання, наприклад рекурсивне копіювання. Подивіться на команду нижче, щоб ознайомитися з командами рекурсивного Rsync.

rsync -zrvh /desktop/Cloudzy /home/Public

Or

rsync -zrvh /desktop/Cloudzy /home/Public

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

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

Припустимо, ми хочемо скопіювати папку (/desktop/Cloudzy/нова папка) з локальної машини на віддалену систему (з адресою IP: 192.168.1.79) під /mycpt; ось приклад, як це працює:

rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt

Як копіювати директорії без їхніх файлів за допомогою Rsync?

Іноді нам може знадобитися використовувати можливості Rsync Linux для роботи з віддаленим сервером, щоб копіювати директорії без файлів; така синхронізація може здійснюватися з віддаленої машини на локальну систему або навпаки.

У цій статті ми використовуємо віддалену систему на 192.168.1.79. Припустимо, вона знаходиться в /mycpt папці, і ми хочемо скопіювати /desktop/Cloudzy директорію з локальної системи без включення її файлів. Введіть команду нижче:

rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/

Інші корисні команди Rsync

Тут ми розглянемо кілька додаткових команд Rsync Linux, які можуть вам стати в нагоді.

Встановлення максимального розміру для передачі файлів у Rsync

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

rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public

Встановлення мінімального розміру для передачі файлів у Rsync

Так само, як ви встановлюєте максимальний розмір для передачі файлів, ви можете встановити мінімальний розмір файлу, який хочете передати на віддалений сервер за допомогою Rsync. У наступній команді ми встановимо мінімальний розмір файлу на 10k:

rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public

Видалення файлів з джерела після завершення синхронізації

Після того як ви закінчите використовувати команду Rsync, файли на исходной системі можуть вам більше не знадобитися. У цьому випадку ви можете використати команду Rsync Linux, як показано нижче, щоб видалити файли з джерела:

rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public

Пробний запуск синхронізації

Якщо ви новачок у утиліті Linux Rsync і незнайомі з її опціями, пробний запуск це правильний вибір. Коли ви запустите Rsync у режимі пробного запуску, він не змінюватиме файли, але покаже вам результат команди. Після того як ви переконаєтеся, що хочете запустити команду, можете вилучити –сухий-запуск опцію з неї та виконати її в терміналі. Подивіться на наступну команду, щоб дізнатися більше про функціональність пробного запуску.

rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public

Підсумок: використання команд Linux Rsync

У цій статті пояснено, як використовувати можливості Linux Rsync для синхронізації з віддаленим сервером (та Rsync для локального сервера) у різних сценаріях, зокрема дзеркалювання системи, створення резервної копії файлів та копіювання файлів і директорій локально та віддалено ефективним способом. Ця добре відома команда Linux дає вам змогу скористатися швидкою передачею файлів, а також використовувати SSH та стиснення даних.

Хостинг Linux VPS

Отримайте економний або преміум Linux VPS для хостингу сайту чи віддаленого робочого столу за найнижчою ціною. VPS на базі Linux KVM для підвищеної ефективності, потужне залізо та сховище NVMe SSD для максимальної швидкості.

Докладніше

Ви можете отримати максимум від цієї операційної системи, замовивши Linux VPS рішення від Cloudzy, яке пропонує KVM-хостинг. Ми з гордістю пропонуємо вам послуги VPS високої продуктивності з часом роботи 99,95%, стабільністю, мінімальною затримкою, світовими центрами обробки даних (12 локацій), надшвидким сховищем SSD та 24/7 технічною підтримкою. Ви можете розпочати використання своєї Linux VPS за $4,95 та масштабувати її, якщо вам потрібне більш продвинуте рішення.

Часто задавані питання

Який порт TCP використовує Rsync?

SSH типово використовує порт 22 за замовчуванням. Таким чином, коли ви використовуєте rsync через SSH, він працюватиме на цьому порту. З іншого боку, коли ви використовуєте демон Rsync, буде використано порт 873.

Що таке Rsync?

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

Поділитися

Ще з блогу

Читайте далі.

Заголовне зображення до посібника Cloudzy про MikroTik L2TP VPN: ноутбук підключається до серверної стійки через цифровий тунель у синьо-золотих тонах із піктограмами щита.
Безпека та мережа

Налаштування MikroTik L2TP VPN (з IPsec): посібник з RouterOS (2026)

У цьому налаштуванні MikroTik L2TP VPN протокол L2TP відповідає за тунелювання, а IPsec - за шифрування та цілісність даних. Їх поєднання забезпечує сумісність із нативними клієнтами без стороннього програмного забезпечення

Рекса СайрусРекса Сайрус 9 хв читання
Вікно термінала з попередженням SSH про зміну ідентифікатора віддаленого хоста, заголовок посібника з виправлення та брендинг Cloudzy на темно-бірюзовому тлі.
Безпека та мережа

Warning: Remote Host Identification Has Changed - причини та способи виправлення

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

Рекса СайрусРекса Сайрус 10 хв читання
Ілюстрація до посібника з усунення несправностей сервера DNS із символами попередження та синім сервером на темному тлі для помилок розпізнавання імен Linux
Безпека та мережа

Тимчасова помилка розрішення імен: що це означає і як її виправити?

При використанні Linux ви можете зіткнутися з помилкою тимчасового розрішення імен під час спроби відкрити сайти, оновити пакети або виконати завдання, що потребують підключення до інтернету

Рекса СайрусРекса Сайрус 12 хв читання

Готові до розгортання? З $2.48/міс.

Незалежна хмара з 2008 року. AMD EPYC, NVMe, 40 Gbps. Повернення коштів протягом 14 днів.