Sünkroniseerimine Unison-iga

From ICO wiki
Jump to navigationJump to search

Juhendi autor ja versioneerimine

Nimi: Reinu
Grupp: AK31
ITK kood: 10061916

Versioon Kuupäev Kommentaar
0.1 02.01.2009 Artikli loomine
0.2 03.01.2009 Esialgne sisu sisestus
0.3 08.01.2009 Teksti parendamine
1.0 08.01.2009 Valmis

Sissejuhatus

Unison on failide sünkroniseerimise tarkvara Linux, Mac OS X ja MS Windows tüüpi operatsioonisüsteemidele. See võimaldab pidada kaustadest ning failidest ühesuguseid replikatsioone kahes erinevas sihtkohas.
Unisoni eelised ning võimalused:

  • Unison toetab paljusid enamlevinud operatsioonisüsteeme ja töötab läbi mitme platvormi samaaegselt. Näiteks võimaldab Linuxiga sülearvutit sünkroniseerida Windows serveriga.
  • Erinevalt mõnedest populaarsetest ühesuunalistest varundustarkvaradest (näiteks rsync) on Unsion kahesuunaline. See võimaldab faile töödelda mõlemas sihtkohas selliselt, et peale sünkroniseerimist ei teki andmekadu ja säilitatakse korrektne töötlus.
  • Konfliktsete muudatuste korral nõutakse kasutaja sekkumist, konfliktivabad muudatused sünkroniseeritakse automaatselt. Selliselt on tagatud failide õigesuunaline sünkroniseerimine.
  • Unison võimaldab sünkroniseerida sihtkohti, mis asuvad samas tööjaamas erinevates kaustades või mis asuvad andmevõrku ühendatud erinevates tööjaamades. Konfidentsiaalsuse tagamiseks krüpteeritakse võrgus andmeliiklus SSH abil.
  • Unison on saadaval tasuta ning selle lähtekood on litsenseeritud GNU Public License alusel.

Legend

Väikeettevõtte IT infrastruktuuris on Ubuntu operatsioonisüsteemidel töötavad serverarvuti (edaspidi: server) ja klient-tööjaamad (edaspidi: klientarvuti). Klientarvuti kasutajad sünkroniseerivad oma faile serverisse, et neid siis sealt kaudu hiljem välisele meediumile varundataks. Kasutajad võivad kasutada ükskõik millist vaba klientarvutit, eeldusel, et igas arvutis on nende lokaalne kasutajakonto loodud.

Skoop

Artikli skoobis on Unisoni paigaldamine ja selle tööleseadmise häälestamine openSSH vahendusel.
Artikli skoobis ei ole Linuxis opereerimise alusteadmiste selgitamine, IP-võrgu põhiomaduste õpetamine, domeenindus, võrguliideste põhjalik häälestamine ja tarkvara lähtekoodist kompileerimine jms.

Eeldused

  • Sünkroniseerimise tööle seadistamise eelduseks on kahe arvuti olemasolu, millest üks täidab serveri rolli ja teine klientarvuti oma.
  • Neile peab olema paigaldatud Ubuntu operartsioonissüsteem, soovitavalt klientarvutile Ubuntu Desktop ja serverile Ubuntu Server Edition versioon.
  • Arvutid peavad saama üle arvutivõrgu üksteisega kommunikeeruda.

Paigaldamine ja häälestamine

Tarkvara paigaldamine

Muuda ennast serveris juurkasutajaks:

 sudo -i

Paigalda serverisse tarkvara openSSH-server, et saaks krüpteeritult üle SSH tunneli faile sünkroniseerida:

 apt-get install openssh-server

Paigalda serverisse tarkvara Unison:

 apt-get install unison

Paigalda klientarvutisse tarkvara Unison:

 sudo apt-get install unison

Kontrolli, kas nii serveris kui ka klientarvutis on kasutusel sama Unisoni versioon. See on eelduseks, et sünkroniseerimine kahe erineva arvuti vahel toimiks!

 unison -version

Kui repositooriumitest on paigaldatud erinevad Unisoni versioonid, siis järgnevalt aadressilt leiab kõikide Unisoni versioonide lähtekoodid ise kompileerimiseks: http://www.seas.upenn.edu/~bcpierce/unison/download/releases/

Loo serverisse uus kasutaja koos kodukaustaga, mille nimeks on näiteks klient1. Selle kasutaja kasutajanime ja parooli abil ühendutakse klientarvutist SSH vahendusel serverisse ning selle kasutaja kodukaust on sihtkoht, kuhu klientarvuti kasutaja oma faile sünkroniseerima hakkab:

 adduser klient1

Serveri võrguaadressi häälestamine

Selle alampeatüki toimingud teosta üksnes juhul, kui serveri võrguaadress ei ole juba staatilise IP peale häälestatud. Serveri staatiline IP on oluline, et klientarvuti "teaks" alati serveri aadressi, kuhu poole pöörduda. Kui server pakub lisaks failihoidlale ka teisi teenuseid, siis võib staatiline IP-aadress juba määratud olla.
Staatilise IP-aadressi olemasolu serveris kontrolli käsuga:

 cat /etc/network/interfaces | grep inet

Kuvatavas väljundis pööra tähelepanu primaarse võrguliidese reale, näiteks iface eth0, mis ei ole välja kommenteeritud ja mis ei ole iface lo. Kui inet järele on kirjutatud static, siis on määratud staatiline IP aadress, kui on aga dhcp, siis kasutatakse automaatset IP omistamist.

Vaata ifconfig käsuga serveri hetkel töötava võrguliidese parameetrid ja kirjuta need ülesse, et vajadusel kasutada samu andmeid staatilise IP määramiseks või hiljem Unisoni konfiguratsioonifailis serveri IP-aadressi täpsustamiseks:

 ifconfig

Staatilise IP aadressi määramiseks tee serveri võrguliideste konfiguratsioonifailist tagavarakoopia ja siis redigeeri seda:

 cp /etc/network/interfaces /etc/network/interfaces.bak
 nano /etc/network/interfaces

Muuda selle faili sisu selliselt, et primaarsele võrguliidesele omistataks IP-aadress ja teised olulised võrguparameetrid staatiliselt. Kui enne omistati parameetrid automaatselt DHCP teenuse abil, siis soovitatavalt kasuta nüüd käsu ifconfig väljundis kuvatud andmeid. Näide staatilisest eth0 võrguliidese häälestusest:

 # The primary network interface
 auto eth0
 iface eth0 inet static
   address 192.168.0.100
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255
   gateway 192.168.0.1

Peale võrguliideste konfiguratsioonifaili redigeerimist taaskäivita serveri võrguteenus:

 /etc/init.d/networking restart

Klientarvuti Unisoni häälestamine

Tekita klientarvutisse kasutaja kodukausta Unisoni alamkaust ja konfiguratsioonifail:

 mkdir ~/.unison
 nano ~/.unison/default.prf

Faili default.prf sisuks kirjuta järgnevad read ja muuda neid vastavalt enda vajadusele:

 #Logimine faili unison.log
 logfile=/home/klient1/.unison/unison.log
 
 #Sünkroniseeritavate kaustade juurkaustade asukohad. Peab olema täpselt kaks root rida - 
 #esimene lokaalse klientarvuti sünkroniseeritav juurkaust, teine serveris paiknev sünkroniseeritav juurkaust.
 #Serveri juurkausta määramise süntaks SSH tunneli vahendusel on 
 #ssh://<kasutajanimiServeris>@<serveriIP>//home/<kasutajaKodukaust>
 root=/home/klient1/
 root=ssh://klient1@<serveriIP>//home/klient1
 
 #konfliktivabade failide automaatne (kasutaja sekkumiseta) sünkroniseerimine ehk automaatselt vaikimisi toimingu aktsepteerimine
 auto = true
 
 #Sünkroniseeritavad alamkaustad ja üksikfailid
 path = Documents
 path = Pictures
 path = cryptokonteiner.tc
 
 #Failivormingud, mida ignoreerida
 ignore = Name *.avi
 ignore = Name *.mp3
 
 #Alamkaustad, mida ignoreerida
 ignore = Path Documents/virtuaalmasinad

Unisoni käivitamine ja kasutamine

Sünkroniseerimise käsitsi käivitamiseks käivita klientarvuti käsurealt käsk unison:

 unison
  • Peale käivitamist luuakse ühendus serveriga ning küsitakse kasutajalt tema serverikonto parooli.
  • Konfliktsete muudatustega failide (samanimelised failid, mida on peale viimast sünkroniseerimist muudetud mõlemas lokatsioonis eraldi) kohta küsitakse kasutajalt, mis suunas faile kopeerida. Küsimusele tuleb vastata õigesuunalise nurksulu vajutamisega: < või >
  • Enne failide tegelikku kopeerimist küsitakse veelkord kasutajalt kinnitust, mille aktsepteerimiseks tuleb trükkida tähemärk: y
  • openSSH puhul võib korduvate paroolisisestuste vältimiseks kasutada automaatset võtmevahetust. Vt Unisoni kasutajajuhendist võtit -sshargs ja kasulikke viitasid artikli lõpust.
  • Sünkroniseerimise automatiseerimiseks crontab'i abil selliselt, et kasutaja sekkumist ei nõuta, tuleb kasutada SSH automaatset võtmevahetust ning Unisoni konfiguratsioonifailis võtmeid -auto ja -prefer.
  • NB! Symlink'ide puhul kopeeritakse ühest arvutist teise link ise, mitte aga lingitud fail ja seepärast võib teises arvutis link viidata olematule sihtmärgile.
  • NB! Ettevaatust fikseeritud suurustega krüptokonteineritega (nt truecrypt'i krüptokonteiner), mille konteinerfaili räsiväärtus ei muutu, kui redigeerida konteineri sisu.
  • NB! Ettevaatust väga suurte failide sünkroniseerimisel - see protsess võib venida pikaks.

Veahaldus ja varundamine

Unisoni veateated ja muud toimingud talletatakse klientarvuti Unisoni logifailis, mille asukoht on määratud Unisoni konfiguratsioonifailis default.prf.
openSSH-serveri teated logitakse serveris asukohaga /var/log/auth.log
Sünkroniseerimisteenuse kiiremaks taastamiseks on soovituslik varundada klientarvuti konfiguratsioonifaili default.prf ja serverarvuti võrguliideste konfiguratsioonifaili interfaces.

Kasulikud viited