Що таке унісон?
Технологія Unison, розроблена Бенджаміном С Пірсом під ліцензією GPL, дозволяє користувачам синхронізувати два екземпляри окремих файлів в одній системі, але на різних дисках або в двох інших системах.
Unison дозволяє зберігати оновлену і ідентичну версію того самого файлу або каталогу. Він може бути використаний у різноманітних контекстах, таких як SSH, що дозволяє безпечно передавати дані між пристроями або каталогами.
Інструмент Unison є міжплатформеним, що дозволяє користувачам синхронізувати файли та каталоги між системами, що працюють з тією ж або різними операційними системами. Наприклад, ви можете синхронізувати файли із системи Linux із системою BSD. Завдяки своїм функціям безпеки Unison синхронізує файли та каталоги та застосовує права власності та дозволів в обох системах.
Інструмент Unison розроблений з урахуванням безпеки та може пережити збої, коли виникають перебої між точками синхронізації. Якщо Unison виявляє конфлікти файлів і каталогів, він повідомляє про наявні конфлікти і дозволяє користувачам вибрати, яку версію файлів застосовувати.
Unison може працювати з повільними мережами або підтримувати їх, що робить його дуже ефективним інструментом для використання смуги пропускання. Він синхронізує лише частини та каталоги, які змінилися, таким чином запобігаючи великому навантаженню та оновлюючи процес синхронізації дуже легко та швидко.
Незважаючи на основний контекст використання, Unison - це потужний інструмент, який можна модифікувати для створення широкого кола випадків використання.
Цей підручник обговорить, як встановити та налаштувати систему синхронізації файлів Unison на Debian 10.
Як встановити Unison на Debian 10
Унісон - популярний інструмент; через це він доступний в офіційних сховищах основних дистрибутивів Linux.
Щоб встановити версію командного рядка Unison на Debian, починайте оновлення системи:
оновлення sudo apt-get && оновлення sudo apt-getДалі використовуйте просту команду apt, щоб встановити інструмент.
sudo apt-get install unison -yЯкщо у вас в системі встановлено робоче середовище, і ви віддаєте перевагу графічній версії інструменту, встановіть unison-gtk за допомогою команди:
sudo apt-get install unison-gtkПРИМІТКА: Переконайтеся, що ви встановили Unison на обидві версії систем, для яких ви хочете синхронізувати файли між ними. Для сумісності та мінімізації ймовірності помилок краще мати однакову версію Unison в обох системах.
Як синхронізувати файли за допомогою Unison
Unison надає нам способи синхронізації файлів та каталогів між локальними машинами та віддаленими машинами за допомогою прямих з'єднань сокетів та SSH. Оскільки ми синхронізуємо між двома серверами Debian, ми пропустимо локальну машинну синхронізацію.
Unison Remote та Remote Sync через SSH
Щоб синхронізувати файли та каталоги між віддаленими машинами, вам потрібно буде встановити Unison в обох системах, мати SSH-доступ до обох систем та їх IP-адреси.
Ви також можете використовувати свою локальну машину як один сервер, а віддалений пристрій як інший сервер.
- 192.168.0.200 - сервер1
- 192.168.0.201 - сервер2
Першим кроком є створення приватного та відкритого ключа на віддаленому сервері1.
ssh-keygen -t rsaГенерація відкритої / приватної пари ключів RSA.
Введіть файл, в якому потрібно зберегти ключ (/ home / csalem /.ssh / id_rsa):
Створено каталог '/ home / csalem /.ssh '.
Введіть парольну фразу (порожньо, якщо немає парольної фрази):
Знову введіть ту саму парольну фразу:
Ваша ідентифікація збережена в / home / csalem /.ssh / id_rsa.
Ваш відкритий ключ збережено в / home / csalem /.ssh / id_rsa.паб.
Ключовий відбиток пальця:
SHA256: 4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem @ Debian-PC
Випадкове художнє зображення ключа:
+---[RSA 2048]----+
| + / @ =… |
| = * O == |
| ++ OE . |
| + * o… |
| o + = . S |
|++. o . |
| оо ... о |
|.o . = . |
|… O o |
+----[SHA256]-----+
Швидко пропустіть процес генерації ключів та збережіть файл. Будь ласка, не додайте парольну фразу, оскільки це може перешкоджати неспостережуваній синхронізації між серверами.
Далі скопіюйте ключ із сервера1 на сервер2 за допомогою команди:
ssh-copy-id 192.168.0.201Тепер, коли ви налаштували SSH в обох системах, ви можете запустити Unison для синхронізації файлів і каталогів.
Давайте перевіримо використання Unison на обох серверах, створивши каталог, який ми будемо синхронізувати на server1:
mkdir -p / dir1На сервері2 створіть каталог, як зазначено вище
mkdir -p / dir2Як уже зазначалося, Unison поважає дозволи користувачів. Тому найкраще змінити дозволи та право власності в обох каталогах, щоб переконатися, що обидва каталоги мають права на читання та запис.
Потім додайте всі дані, які ви хочете синхронізувати між серверами, у папці dir1. Наприклад, додайте кілька ZIP-файлів.
sudo mv ~ / Документи.zip / dir1Маючи файли, ми хочемо синхронізуватись у потрібному каталозі, запустіть команду unison для синхронізації з сервера як:
unison / dir1 ssh: // 192.168.0.201 // dir2Під час першого запуску Unison ви отримаєте попередження про те, що процес синхронізації може зайняти деякий час. Якщо у вас є великі файли в каталогах, це може зайняти деякий час, але оскільки ми використовуємо його лише для цілей тестування, це повинно бути відносно швидко.
Натисніть Enter, щоб розпочати процес синхронізації. Після завершення процесу синхронізації перейдіть на server2, перейдіть до dir2 та перелічіть вміст каталогу як:
cd / dir2 && ls -la-rw-r - r-- 1 кореневий корінь 436 5 січня 12:57 Документи.застібку-блискавку
Змінення конфігурації Unison
У більшості випадків ми не хочемо інтерактивно синхронізувати файли між цими серверами, оскільки процес повторюється та неефективний. Ми можемо відредагувати файл конфігурації Unison, щоб дозволити автоматичну синхронізацію файлів.
Використовуйте команду нижче, щоб відредагувати файл конфігурації за замовчуванням:
sudo vi ~ /.унісон / за замовчуванням.prfУ файл додайте такі рядки:
auto = істинаbatch = true
Наведені вище рядки відключають підказки під час синхронізації файлів, що автоматизує процес.
Налаштування Unison Cronjob
Одне впевнене, що програмісти дуже не хочуть робити речі вручну, особливо коли це можливо для автоматизації, що тут має місце. Ми можемо налаштувати cronjob для Unison для автоматичної синхронізації.
У server1 створіть простий скрипт bash для запуску команди unison як:
sudo touch / usr / bin / unisoncron && sudo vi / usr / bin / unisoncronУ файлі почніть з шебанга та додайте команду unison sync:
#!/ bin / bash /unison / dir1 ssh: // 192.168.0.201 // dir2
Як зазвичай, змусьте сценарій виконувати дозволи:
sudo chmod 755 / usr / bin / unisoncronТепер відредагуйте свій файл cronjob за допомогою crontab:
sudo crontab -eЯкщо це ваш перший раз, коли ви редагуєте crontab - сподіваюся, це не так - виберіть редактора та введіть наступний рядок для синхронізації з Unison кожні 1 годину:
* / 60 * * * * / usr / bin / unisoncron &> / dev / nullВи також можете налаштувати crontab для запуску в певний час доби. Вам також не потрібно використовувати скрипт, і ви можете використовувати необроблену команду в crontab.
Висновок
Цей підручник показав вам, як встановити та налаштувати Unison у системі Debian для синхронізації файлів та каталогів.
Незважаючи на те, що цей короткий посібник може допомогти вам розпочати роботу, ви можете дізнатися більше, скориставшись сторінками керівництва Unison (сторінки з інструкціями) або офіційною документацією, використовуючи поданий нижче ресурс:
- https: // www.цис.упенн.edu / ~ bcpierce / unison /
- https: // www.цис.упенн.edu / ~ bcpierce / unison / download / releases / stable / unison-manual.html