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