Чи ви адміністратор чи звичайний користувач, вам, ймовірно, потрібно регулярно створювати резервні копії файлів або синхронізувати їх між кількома системами. Якщо це вимагає перезаписування всіх файлів щоразу, це буде затратним часом і виснажливим; Саме тут вам на допомогу приходить інструмент 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 для хостингу сайту чи віддаленого робочого столу за найнижчою ціною. 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 дає вам змогу виконувати різні завдання, пов'язані з даними, такі як синхронізація, копіювання та створення резервних копій.