Rsync: Difference between revisions
(29 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Sissejuhatus = | = Sissejuhatus = | ||
Rsync on vaba tarkvara unixi laadsetele süsteemidele mis sünkroniseerib faile ja kaustu ühest asukohast teise. | Rsync on vaba tarkvara unixi laadsetele süsteemidele mis sünkroniseerib faile ja kaustu ühest asukohast teise. [1] | ||
Rsync töötab | Rsync töötab sarnaselt käsuga [http://en.wikipedia.org/wiki/RCP rcp], aga tal on rohkem võtmeid ning ta kasutab rsynci kaugvärskendamise protokolli, mis toob kohale vaid erinevused kahe komplekti failide vahel - seega kiirendab see märkimisväärselt üle võrgu toimuvat sünkroniseerimist. [2] | ||
Tarkvara ametlik koduleht asub aadressil [http://rsync.samba.org/ http://rsync.samba.org/] | Tarkvara ametlik koduleht asub aadressil [http://rsync.samba.org/ http://rsync.samba.org/] | ||
= Paigldamine = | = Paigldamine = | ||
Rsync peaks kõigi kaasaegsete distributsioonide "standardvarustuses" olema. Kahtluste tekkimisel tasuks pakihalduri abiga kontrollida, kas [http://en.wikipedia.org/wiki/Rsync rsync], [http://en.wikipedia.org/wiki/Xinetd xinetd] ja [http://en.wikipedia.org/wiki/Secure_Shell ssh] ikka paigaldatud on. | Rsync peaks kõigi kaasaegsete distributsioonide "standardvarustuses" olema. Kahtluste tekkimisel tasuks pakihalduri abiga kontrollida, kas [http://en.wikipedia.org/wiki/Rsync rsync], [http://en.wikipedia.org/wiki/Xinetd xinetd] ja [http://en.wikipedia.org/wiki/Secure_Shell ssh] ikka paigaldatud on. [3] | ||
Ubuntu korral võiks see toimuda näiteks nii | Ubuntu korral võiks see toimuda näiteks nii | ||
Line 12: | Line 12: | ||
= Kasutamine = | = Kasutamine = | ||
Lihtsaim moodus üle võrgu varukoopia tegemiseks on kasutada ''rsync'' 'i üle SSH ('''-e ssh''' võti). Alternatiiviks oleks ''rsync daemon'' 'i kasutamine (nõuab küll rohkem häälestamist ja | Lihtsaim moodus üle võrgu varukoopia tegemiseks on kasutada ''rsync'' 'i üle SSH ('''-e ssh''' võti). Alternatiiviks oleks ''rsync daemon'' 'i kasutamine (nõuab küll rohkem häälestamist ja konfigureerimist aga omab ka mõningaid eeliseid) | ||
Kohaliku varukoopia tegemine nõuab ainult ''rsync'''i olemasolu ja lugemise/kirjutamise õiguseid sünkroniseeritavates kataloogides | Kohaliku varukoopia tegemine nõuab ainult ''rsync'''i olemasolu ja lugemise/kirjutamise õiguseid sünkroniseeritavates kataloogides. [3] | ||
== Iseseisvana == | == Iseseisvana == | ||
Line 24: | Line 24: | ||
'''-e ssh''' võti käsib ''rsync'' 'il kasutada SSH ''shell'' 'i. | '''-e ssh''' võti käsib ''rsync'' 'il kasutada SSH ''shell'' 'i. | ||
== | == Koos serveriga (rsyncd) == | ||
Varundusserverit luues oleks mõistlik seal kasutada ''rsync daemon'' 'it mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele. | Varundusserverit luues oleks mõistlik seal kasutada ''rsync daemon'' 'it mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele. [1] | ||
=== xinetd häälestamine === | |||
[3] Ava fail /etc/default/rsync ja muuda seal RSYNC_ENABLE parameetri väärtus: | |||
RSYNC_ENABLE=inetd | |||
Järgmiseks loo fail /etc/xinetd.d/rsync mille sisu võiks olla selline: | |||
service rsync | |||
{ | |||
disable = no | |||
socket_type = stream | |||
wait = no | |||
user = root | |||
server = /usr/bin/rsync | |||
server_args = --daemon | |||
log_on_failure += USERID | |||
} | |||
=== Seadmistamine === | |||
Seadistusfailiks on /etc/rsyncd.conf | Seadistusfailiks on /etc/rsyncd.conf | ||
Näidis: | Näidis: | ||
max connections = 10 | max connections = 10 | ||
Line 36: | Line 54: | ||
path = <failide asukoht> | path = <failide asukoht> | ||
read only = no | read only = no | ||
auth users = <kasutajanimi1>, <kasutajanimi2> | |||
auth users = | |||
secrets file = /etc/rsyncd.secrets | secrets file = /etc/rsyncd.secrets | ||
Line 45: | Line 61: | ||
comment = <kausta või faile kirjeldav kommentaar või märkus> | comment = <kausta või faile kirjeldav kommentaar või märkus> | ||
dont compress = * | dont compress = * | ||
* '''dont compress''' lülitab määratud failitüüpide jaoks pakkimise välja (näiteks pilte ja videoid, mis on juba pakitud, pole mõtet hakata uuesti pakkima). Vaikimisi ei pakita *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz faile. | hosts allow = *.acme.com | ||
hosts deny = * | |||
* '''dont compress''' lülitab määratud failitüüpide jaoks pakkimise välja (näiteks pilte ja videoid, mis on juba pakitud, pole mõtet hakata uuesti pakkima). Vaikimisi ei pakita *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz faile. [1] | |||
* '''secrets file''' näitab ära kasutajate ja paroolifailide asukoha. | * '''secrets file''' näitab ära kasutajate ja paroolifailide asukoha. | ||
* '''read only''' abil saame muuta selle kataloogi ainult loetavaks. | * '''read only''' abil saame muuta selle kataloogi ainult loetavaks. Vaikeväärtus on '''yes'''. | ||
* '''auth users''' kaudu saame piirata ligipääsu ainult teatud kasutajatele. | |||
* '''hosts allow''' ja '''hosts deny''' abil saame reguleerida erinevate hostide ligipääsu sellele kataloogile. | |||
Kasutajate- ja paroolifaili loomiseks võid kasutada omale meelepärast tekstiredatorit. Faili sisu peab vastama reeglile: | |||
<kasutajanimi>:<parool> | |||
Kuna selles failis hoitakse kasutajanime ja parooli ''plain textina'', siis tuleks ligipääs sellele võimalikult kinni keerata. | |||
chmod 600 /etc/rsyncd.secrets | |||
=== Teenuse käivitamine === | |||
Kui kõik eelnevad seadistured on tehtud, siis on järgi jäänud vaid ''rsync daemon'' 'i esmane käivitamine | |||
/etc/init.d/xinetd restart | |||
=== Kasutamine === | |||
Lihtsaim viis, kataloogi sünkroniseerimiseks ''rsync daemon'' serveriga, oleks selline: | |||
rsync -a <lähtekataloog> <kasutaja>@<serveri nimi või aadress>::<jagatud kataloogi nimi> | |||
== Olulisemad võtmed == | == Olulisemad võtmed == | ||
Järgnevalt tooks ära mõned olulisemad võtmed, mida võib ''rsync'' 'i kasutamisel vaja minna. Täpsema ülevaate saab, kui vaadata ''rsync'' 'i ''man'' lehekülge. [1] | |||
* '''-a''' või '''--archive''' võtme kasutamine kindlustab kuupäevade, õiguste, omanike ja linkide säilumise | * '''-a''' või '''--archive''' võtme kasutamine kindlustab kuupäevade, õiguste, omanike ja linkide säilumise | ||
* '''-v''' või '''--verbose''' annabb kogu sünkroniseerimisprotsessi kohta põhjalikumat infot (nt. failide nimed, vms...) | * '''-v''' või '''--verbose''' annabb kogu sünkroniseerimisprotsessi kohta põhjalikumat infot (nt. failide nimed, vms...) | ||
Line 59: | Line 93: | ||
* '''-n''' nö. "eelvaate" režiim, kus ''rsync'' lihtsalt ütleb mida ta teeks ilma reaalselt faile üle kandmata | * '''-n''' nö. "eelvaate" režiim, kus ''rsync'' lihtsalt ütleb mida ta teeks ilma reaalselt faile üle kandmata | ||
* '''-c''' käseb genereerida kõigi failide kontrollsummad. Tavajuhul ''rsync'' lihtsalt võrdleb faili loomise ja muutmise aegu, et selgitada välja kas see on muutunud või ei. Kuna selle võtme kasutamine võib ''rsync'' 'i muuta üsnagi aeglaseks, siis tasuks seda kasutada vaid tõsise vajaduse korral, näiteks kui on kahtlus, et failide sisu on kuidagi rikutud. | * '''-c''' käseb genereerida kõigi failide kontrollsummad. Tavajuhul ''rsync'' lihtsalt võrdleb faili loomise ja muutmise aegu, et selgitada välja kas see on muutunud või ei. Kuna selle võtme kasutamine võib ''rsync'' 'i muuta üsnagi aeglaseks, siis tasuks seda kasutada vaid tõsise vajaduse korral, näiteks kui on kahtlus, et failide sisu on kuidagi rikutud. | ||
Varundamisel mõnele sellisele andmekandjale, mille failisüsteem ei toeta õiguseid (näiteks FAT failisüsteemiga vormindatud USB mälupulk), tuleks '''-a''' asemel kasutada võtmekomplekti '''-rlt''' [5] | |||
* '''-r''' kaasab ka alamkataloogid | |||
* '''-l''' kopeerib ka ''symlink'' 'id | |||
* '''-t''' säilitab failide kuupäevainfo | |||
== Näited == | |||
Varundame kasutajate kodukataloogid serveris 192.168.1.10 asuvasse kausta "/var/backup". Varundusserveri ruumi säästmiseks pakime failid kokku ja kustutame eelnevast backupist nüüdseks mitte eksisteerivad failid ära. Kasutajate muusikavaramu ja lemmikloomade videod jätame ka kõrvale. | |||
rsync -az --delete -e ssh --exclude "*.mp3" --exclude "*.avi" --exclude "*.mpg" /home remoteuser@remotehost.remotedomain:/var/backup | |||
Paremaks ja mugavamaks teatud failide ja kataloogide kõrvale jätmiseks on mugav kasutada nö ''exclude'' faili. Tekita oma lemmik tekstiredaktoriga fail, mille sisuks oleks erinevate kataloogide ja/või failide nimed ja/või asukohad mida sa '''ei soovi''' varundada. | |||
*.mp3 | |||
*.avi | |||
*.mpg | |||
Eelmine näide ''exclude'' faili abil oleks selline | |||
rsync -az --delete -e ssh --exclude-from <exclude faili nimi> /home remoteuser@remotehost.remotedomain:/var/backup | |||
Varundame kausta /etc serveris 192.168.1.10 asuvasse kausta "backup" | |||
rsync -a /etc kasutaja@192.168.1.10::backup | |||
=Kasutatud kirjandus= | =Kasutatud kirjandus= | ||
*http://kuutorvaja.eenet.ee/wiki/Rsync | *[1] http://kuutorvaja.eenet.ee/wiki/Rsync | ||
*http://www.bsd.ee/handbook/mirrors-rsync.html | *[2] http://www.bsd.ee/handbook/mirrors-rsync.html | ||
*https://help.ubuntu.com/community/rsync | *[3] https://help.ubuntu.com/community/rsync | ||
*[4] http://www.fredshack.com/docs/rsync.html | |||
*[5] http://sial.org/howto/rsync/ | |||
= Autor = | |||
:Martin Lehari | :Martin Lehari | ||
:A22 | :A22 | ||
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]] | [[Category: Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 12:34, 9 May 2010
Sissejuhatus
Rsync on vaba tarkvara unixi laadsetele süsteemidele mis sünkroniseerib faile ja kaustu ühest asukohast teise. [1] Rsync töötab sarnaselt käsuga rcp, aga tal on rohkem võtmeid ning ta kasutab rsynci kaugvärskendamise protokolli, mis toob kohale vaid erinevused kahe komplekti failide vahel - seega kiirendab see märkimisväärselt üle võrgu toimuvat sünkroniseerimist. [2]
Tarkvara ametlik koduleht asub aadressil http://rsync.samba.org/
Paigldamine
Rsync peaks kõigi kaasaegsete distributsioonide "standardvarustuses" olema. Kahtluste tekkimisel tasuks pakihalduri abiga kontrollida, kas rsync, xinetd ja ssh ikka paigaldatud on. [3]
Ubuntu korral võiks see toimuda näiteks nii
apt-get install rsync xinetd ssh
Kasutamine
Lihtsaim moodus üle võrgu varukoopia tegemiseks on kasutada rsync 'i üle SSH (-e ssh võti). Alternatiiviks oleks rsync daemon 'i kasutamine (nõuab küll rohkem häälestamist ja konfigureerimist aga omab ka mõningaid eeliseid) Kohaliku varukoopia tegemine nõuab ainult rsync'i olemasolu ja lugemise/kirjutamise õiguseid sünkroniseeritavates kataloogides. [3]
Iseseisvana
Lihtsaim viis, lokaalse masina piires kahe kataloogi sünkroniseerimiseks, oleks selline:
rsync -a <lähtekataloog> <sihtkataloog>
-a või --archive võtme kasutamine kindlustab kuupäevade, õiguste, omanike ja linkide säilumise
Üle võrgu sünkroniseerimine toimub saranaselt:
rsync -a -e ssh <lähtekataloog> <kasutaja>@<serveri nimi või aadress>:<sihtkataloog>
-e ssh võti käsib rsync 'il kasutada SSH shell 'i.
Koos serveriga (rsyncd)
Varundusserverit luues oleks mõistlik seal kasutada rsync daemon 'it mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele. [1]
xinetd häälestamine
[3] Ava fail /etc/default/rsync ja muuda seal RSYNC_ENABLE parameetri väärtus:
RSYNC_ENABLE=inetd
Järgmiseks loo fail /etc/xinetd.d/rsync mille sisu võiks olla selline:
service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
Seadmistamine
Seadistusfailiks on /etc/rsyncd.conf
Näidis:
max connections = 10 log file = /var/log/rsync.log timeout = 300 [share1] comment = <kausta või faile kirjeldav kommentaar või märkus> path = <failide asukoht> read only = no auth users = <kasutajanimi1>, <kasutajanimi2> secrets file = /etc/rsyncd.secrets [share2] path = <failide asukoht> comment = <kausta või faile kirjeldav kommentaar või märkus> dont compress = * hosts allow = *.acme.com hosts deny = *
- dont compress lülitab määratud failitüüpide jaoks pakkimise välja (näiteks pilte ja videoid, mis on juba pakitud, pole mõtet hakata uuesti pakkima). Vaikimisi ei pakita *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz faile. [1]
- secrets file näitab ära kasutajate ja paroolifailide asukoha.
- read only abil saame muuta selle kataloogi ainult loetavaks. Vaikeväärtus on yes.
- auth users kaudu saame piirata ligipääsu ainult teatud kasutajatele.
- hosts allow ja hosts deny abil saame reguleerida erinevate hostide ligipääsu sellele kataloogile.
Kasutajate- ja paroolifaili loomiseks võid kasutada omale meelepärast tekstiredatorit. Faili sisu peab vastama reeglile:
<kasutajanimi>:<parool>
Kuna selles failis hoitakse kasutajanime ja parooli plain textina, siis tuleks ligipääs sellele võimalikult kinni keerata.
chmod 600 /etc/rsyncd.secrets
Teenuse käivitamine
Kui kõik eelnevad seadistured on tehtud, siis on järgi jäänud vaid rsync daemon 'i esmane käivitamine
/etc/init.d/xinetd restart
Kasutamine
Lihtsaim viis, kataloogi sünkroniseerimiseks rsync daemon serveriga, oleks selline:
rsync -a <lähtekataloog> <kasutaja>@<serveri nimi või aadress>::<jagatud kataloogi nimi>
Olulisemad võtmed
Järgnevalt tooks ära mõned olulisemad võtmed, mida võib rsync 'i kasutamisel vaja minna. Täpsema ülevaate saab, kui vaadata rsync 'i man lehekülge. [1]
- -a või --archive võtme kasutamine kindlustab kuupäevade, õiguste, omanike ja linkide säilumise
- -v või --verbose annabb kogu sünkroniseerimisprotsessi kohta põhjalikumat infot (nt. failide nimed, vms...)
- --progress näitab infot ülekande progressi kohta
- --stats näitab ülevaatlikumat statistikat kulunud ajast ja failide hulgast
- -z või --compress käsib rsync 'il kasutada zlib pakkimist
- -d või --delete kasutamisel kustutatakse mitte eksisteerivad failid eelnevast backupist
- --exclude "<faili kirjeldus>" abil saab vältida mingile kindla mustriga klappivate failide varundamise. Faili kirjeldamiseks võib kasutada nii laiendit kui ka mingit osa faili nimest
- -n nö. "eelvaate" režiim, kus rsync lihtsalt ütleb mida ta teeks ilma reaalselt faile üle kandmata
- -c käseb genereerida kõigi failide kontrollsummad. Tavajuhul rsync lihtsalt võrdleb faili loomise ja muutmise aegu, et selgitada välja kas see on muutunud või ei. Kuna selle võtme kasutamine võib rsync 'i muuta üsnagi aeglaseks, siis tasuks seda kasutada vaid tõsise vajaduse korral, näiteks kui on kahtlus, et failide sisu on kuidagi rikutud.
Varundamisel mõnele sellisele andmekandjale, mille failisüsteem ei toeta õiguseid (näiteks FAT failisüsteemiga vormindatud USB mälupulk), tuleks -a asemel kasutada võtmekomplekti -rlt [5]
- -r kaasab ka alamkataloogid
- -l kopeerib ka symlink 'id
- -t säilitab failide kuupäevainfo
Näited
Varundame kasutajate kodukataloogid serveris 192.168.1.10 asuvasse kausta "/var/backup". Varundusserveri ruumi säästmiseks pakime failid kokku ja kustutame eelnevast backupist nüüdseks mitte eksisteerivad failid ära. Kasutajate muusikavaramu ja lemmikloomade videod jätame ka kõrvale.
rsync -az --delete -e ssh --exclude "*.mp3" --exclude "*.avi" --exclude "*.mpg" /home remoteuser@remotehost.remotedomain:/var/backup
Paremaks ja mugavamaks teatud failide ja kataloogide kõrvale jätmiseks on mugav kasutada nö exclude faili. Tekita oma lemmik tekstiredaktoriga fail, mille sisuks oleks erinevate kataloogide ja/või failide nimed ja/või asukohad mida sa ei soovi varundada.
*.mp3 *.avi *.mpg
Eelmine näide exclude faili abil oleks selline
rsync -az --delete -e ssh --exclude-from <exclude faili nimi> /home remoteuser@remotehost.remotedomain:/var/backup
Varundame kausta /etc serveris 192.168.1.10 asuvasse kausta "backup"
rsync -a /etc kasutaja@192.168.1.10::backup
Kasutatud kirjandus
- [1] http://kuutorvaja.eenet.ee/wiki/Rsync
- [2] http://www.bsd.ee/handbook/mirrors-rsync.html
- [3] https://help.ubuntu.com/community/rsync
- [4] http://www.fredshack.com/docs/rsync.html
- [5] http://sial.org/howto/rsync/
Autor
- Martin Lehari
- A22