Блог компанії 3v-Hosting

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

Адміністрування

8 хв.


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

 

 

 

Що таке Rsync?

 

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

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

 

 

 


Синтаксис Rsync

Розуміння синтаксису rsync дуже важливе для освоєння цього інструменту. Загальна структура команди rsync має такий вигляд:

    rsync [options] source destination

    source: Шлях до файлу(ів) або каталогу, який потрібно синхронізувати.
    destination: Шлях до місця, куди буде скопійовано файл(и) або каталог.
    options: Прапори, що змінюють поведінку rsync і дають змогу краще контролювати процес синхронізації.

 

Часто використовувані опції Rsync:

    -a (archive): Зберігає символічні посилання, дозволи на файли, права власності та тимчасові мітки.
    -v (verbose): Відображає докладний висновок операції.
    -z (compress): Стискає дані файлу під час передачі, щоб зменшити використання смуги пропускання.
    -r (recursive): Забезпечує копіювання всіх файлів і підкаталогів.

 

 

 


Практичні приклади Rsync

 

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

Найпростіший варіант використання rsync - синхронізація двох каталогів в одній системі. Наприклад:

    rsync -avz /path/to/source/ /path/to/destination/

 

Ця команда гарантує, що:

    - Файли та підкаталоги копіюються рекурсивно.
    - Метадані, як-от дозволи та тимчасові мітки, зберігаються.
    - Дані стискаються під час передачі для підвищення ефективності.

 


Rsync з віддаленого сервера на локальний

Щоб скопіювати файли з віддаленого сервера на локальну машину, використовується метод rsync remote to local:

    rsync -avz user@remote:/path/to/remote/ /path/to/local/

Тут user - це ваше ім'я користувача на віддаленому сервері, а remote - ім'я хоста або IP-адреса. Цей метод ідеально підходить для резервного копіювання даних з віддаленої системи.

 


Rsync на віддалений сервер

Завантаження файлів на віддалений сервер виконується за аналогічним синтаксисом:

    rsync -avz /path/to/local/ user@remote:/path/to/remote/

В обох випадках rsync встановлює безпечне з'єднання з використанням SSH за замовчуванням, забезпечуючи цілісність даних під час передачі.

 


Виключення файлів і каталогів

Іноді потрібно виключити з синхронізації певні файли або каталоги. Цього можна домогтися за допомогою параметра --exclude:

    rsync -avz --exclude='*.tmp' /source/ /destination/

У цьому прикладі всі файли з розширенням .tmp будуть виключені з передачі.

 

 

 

 

Додаткові методи роботи з Rsync

 

Інкрементне резервне копіювання

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

    rsync -avz --delete /source/ /backup/

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

 


Rsync через SSH з нестандартними портами

Якщо ваш SSH-сервер використовує нестандартний порт, ви можете вказати його за допомогою опції -e:

    rsync -avz -e «ssh -p 2222» /source/ user@remote:/destination/

Це вказує rsync на підключення по SSH через порт 2222.

 


Рекурсивна синхронізація Rsync

Опція рекурсивної синхронізації rsync неявно присутня в багатьох командах rsync, оскільки прапор -a (архів) включає її. Однак якщо ви хочете скопіювати тільки підкаталоги без збереження метаданих, ви можете явно використовувати прапор -r:

    rsync -rv /source/ /destination/

 

 


 

Інші цікаві статті в нашому Блозі:


    - Як встановити Node.js на Ubuntu 22.04

    - Простий моніторинг вашого Linux VPS

    - Короткий посібник із встановлення та налаштування WordPress на Linux VPS

    - ТОП 6 Linux дистрибутивів для VPS

 


 


Rsync у стратегіях резервного копіювання

 

Локальне резервне копіювання

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

    rsync -avz /data/ /backups/daily/

 


Віддалене резервне копіювання

При створенні резервних копій на віддаленому сервері поєднання rsync з SSH забезпечує безпечне та ефективне передавання даних:

    rsync -avz /data/ user@backup-server:/remote-backup/

Таке налаштування зазвичай використовується для аварійного відновлення і резервування даних.

 

 

 

 

Моніторинг і протоколювання операцій Rsync

 

Під час роботи rsync виводить деталі операції в режимі реального часу. Для збереження записів або усунення неполадок можна спрямувати виведення у файл журналу:

    rsync -avz /source/ /destination/ --log-file=rsync.log

Це створить файл з ім'ям rsync.log, що містить усі подробиці операції, що особливо корисно в сценаріях автоматичного резервного копіювання.

 

 

 

Поширені помилки та як їх уникнути

 

Косі слеші в шляхах:
    Додавання косої риски в шлях до джерела впливає на поведінку rsync. Наприклад:

        rsync -avz /source/ /destination/

    Копіює вміст /source в /destination. Без косої риски сам /source буде скопійовано в /destination.

 

Перезапис файлів:
    Використовуйте параметр -u, щоб забезпечити копіювання тільки нових файлів, запобігаючи їх випадковому перезапису:

        rsync -uavz /source/ /destination/

 

Питання безпеки:
    Завжди використовуйте rsync через SSH для шифрування даних під час передавання, особливо під час роботи через публічні мережі.

 

 

 

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

 

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

 

 

 

Висновок

rsync - це найефективніший інструмент для управління даними. Його гнучкість і міць роблять його незамінним інструментом для адміністраторів. Опануйте синтаксис, експериментуйте з різними прикладами rsync і вивчіть передові методи, щоб оптимізувати робочі процеси та забезпечити цілісність ваших даних.

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