fbpx
Перейти до вмісту

rsync – резервне копіювання та синхронізація файлів і папок

Rsync – потужний інструмент, що полегшує рутинну операцію створення резервних копій або синхронізацію файлів і папок. 

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

Основні можливості rsync
  • Можливість підтримувати синхронізацію цілих дерев каталогів
  • Можна зберігати символічні посилання, жорсткі посилання, власників і права файлу, метадані та час створення
  • Не потребує особливих привілеїв
  • Передача файлів одним потоком
  • Підтримка RSH, SSH як транспорту
  • Підтримка анонімного Rsyn

Встановлення rsync 

Ubuntu / Debian 

sudo apt-get install rsync

CentOS

yum install rsync

Синтаксис rsync

Синтаксис rsync має такий вигляд 

rsync опції джерело приймач

Як джерело і приймач може виступати віддалена або локальна директорія.

Опції rsync

-v – Виводити детальну інформацію про процес копіювання;

-q – Мінімум інформації;

-c – Перевірка контрольних сум для файлів;

-a – Режим архівування, коли зберігаються всі атрибути оригінальних файлів;

-R – Відносні шляхи;

-b – Створення резервної копії;

-u – Не перезаписувати новіші файли;

-l – Копіювати символьні посилання;

-L – Копіювати вміст посилань;

-H – Копіювати жорсткі посилання;

-p – Зберігати права для файлів;

-g – Зберігати групу;

-t – Зберігати час модифікації;

-x – Працювати тільки в цій файловій системі;

-e – Використовувати інший транспорт, наприклад, ssh;

-z – Архівувати файли перед передаванням;

–delete – Видаляти файли яких немає в джерелі;

–exclude – Виключити файли за шаблоном;

–recursive – Перебирати директорії рекурсивно;

–no-recursive – Вимкнути рекурсію;

–progress – Виводити прогрес передавання файлу;

–stat – Показати статистику передачі;

–version – Версія утиліти.

Пример синхронизации rsync

Розглянемо приклад синхронізації локальних файлів і папок

rsync -zvh file /backups/

Ця команда копіює файл з ім’ям file у папку /backups/.

rsync -zvh --progress file/backups/

Якщо додати опцію –progress ви зможете побачити прогрес копіювання і скільки часу залишилося до завершення операції копіювання. 

rsync -zvh /home/www /tmp/backups/

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

rsync -avz /home/www/ [email protected]:/home/www/

Синхронізація на віддалених серверах виконується на зразок локальної, але як приймач ми вказуємо ім’я користувача, сервер і директорію, до якої потрібно провести синхронізацію. 

rsync -avz [email protected]:/home/www/ /home/www/

Зворотна синхронізація файлів.

Синхронизация не всех файлов и папок 

rsync -avz --include 'G*' --exclude '*' /home/www/ [email protected]:/home/www/

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

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