Какво е Unison?
Технологията Unison, разработена от Benjamin C Pierce под лиценза GPL, позволява на потребителите да синхронизират два единични файлови екземпляра в същата система, но различни дискове или две други системи.
Unison ви позволява да поддържате актуализирана и идентична версия на същия файл или директория. Той може да се използва в широк спектър от контексти, като SSH, което позволява сигурен трансфер на данни между устройства или директории.
Инструментът Unison е междуплатформен, позволяващ на потребителите да синхронизират файлове и директории между системи, работещи с една и съща или различни операционни системи. Например можете да синхронизирате файлове от Linux система към BSD система. Поради своите функции за сигурност, Unison синхронизира файлове и директории и прилага права за собственост и разрешения и за двете системи.
Инструментът Unison е разработен с оглед на сигурността и може да преживее неуспехи, когато се случват прекъсвания между точките за синхронизиране. Ако Unison открие конфликти на файлове и директории, той докладва за съществуващите конфликти и позволява на потребителите да изберат коя версия на файловете да се прилага.
Unison може да работи със или поддържа бавни мрежи, което го прави много ефективен инструмент за използване на честотна лента. Той синхронизира само части и директории, които са се променили, като по този начин предотвратява тежко натоварване и актуализира процеса на синхронизиране много лесно и бързо.
Въпреки основния си контекст на използване, Unison е мощен инструмент, който може да бъде модифициран, за да създаде широк спектър от случаи на употреба.
Този урок ще обсъди как да инсталирате и настроите системата за синхронизиране на файлове Unison на Debian 10.
Как да инсталирате Unison на Debian 10
Unison е популярен инструмент; поради това е наличен в официалните хранилища на основните дистрибуции на Linux.
За да инсталирате версията на командния ред на Unison на Debian, започнете да актуализирате системата:
sudo apt-get update && sudo apt-get upgradeСлед това използвайте простия apt, за да командвате, за да инсталирате инструмента.
sudo apt-get install unison -yАко на вашата система имате инсталирана работна среда и предпочитате GUI версия на инструмента, инсталирайте unison-gtk, като използвате командата:
sudo apt-get инсталирайте 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]-----+
Бързо прескочете процеса на генериране на ключове и запазете файла. Моля, не добавяйте пропуск, защото това може да попречи на непроменено синхронизиране между сървърите.
След това копирайте ключа от server1 на server2, като използвате командата:
ssh-copy-id 192.168.0.201След като вече сте настроили SSH и на двете системи, можете да стартирате Unison за синхронизиране на файлове и директории.
Нека тестваме използването на Unison и на двата сървъра, като създадем директорията, която ще синхронизираме на server1:
mkdir -p / dir1На server2 създайте директория, както по-горе
mkdir -p / dir2Както споменахме, Unison зачита потребителските разрешения. Поради това е най-добре да промените разрешенията и собствеността в двете директории, за да сте сигурни, че и двете директории имат права за четене и запис.
След това добавете всички данни, които искате да синхронизирате между сървърите в dir1. Например добавете няколко zip файла.
sudo mv ~ / Документи.zip / dir1Като разполагаме с файловете, искаме да синхронизираме в дясната директория, изпълнете командата unison, за да синхронизирате от сървър като:
unison / dir1 ssh: // 192.168.0.201 // дир2При първото стартиране на Unison ще получите предупреждение, че процесът на синхронизиране може да отнеме известно време. Ако имате големи файлове в директориите, това може да отнеме известно време, но тъй като ние го използваме само за целите на тестването, трябва да е относително бързо.
Натиснете Enter, за да стартирате процеса на синхронизиране. След като процесът на синхронизиране завърши, отидете на server2, отидете до dir2 и изредете съдържанието на директорията като:
cd / dir2 && ls -la-rw-r - r-- 1 корен корен 436 5 януари 12:57 Документи.цип
Промяна на конфигурацията на Unison
В повечето случаи не искаме да синхронизираме интерактивно файлове между тези сървъри, тъй като процесът е повтарящ се и неефективен. Можем да редактираме конфигурационния файл Unison, за да разрешим автоматично синхронизиране на файлове.
Използвайте командата по-долу, за да редактирате конфигурационния файл по подразбиране:
sudo vi ~ /.унисон / по подразбиране.prfВъв файла добавете следните редове:
автоматично = вярнопартида = вярно
Горните редове деактивират подканите при синхронизиране на файлове, като автоматизират процеса.
Настройване на Unison Cronjob
Едно сигурно нещо е, че програмистите са много склонни да правят нещата ръчно, особено когато е възможно да се автоматизира, какъвто е случаят тук. Можем да настроим cronjob за Unison да извършва синхронизиране автоматично.
В server1 създайте прост bash скрипт, за да стартирате unison команда като:
sudo touch / usr / bin / unisoncron && sudo vi / usr / bin / unisoncronВъв файла започнете с shebang и добавете командата unison sync:
#!/ bin / bash /unison / dir1 ssh: // 192.168.0.201 // дир2
Както обикновено, накарайте скрипта да изпълнява разрешения:
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.цис.upenn.edu / ~ bcpierce / unison /
- https: // www.цис.upenn.edu / ~ bcpierce / unison / download / releases / stable / unison-manual.html