Erinevus lehekülje "Rsync" redaktsioonide vahel
(→Sissejuhatus) |
|||
1. rida: | 1. rida: | ||
===Sissejuhatus=== | ===Sissejuhatus=== | ||
− | Rsync on vaba tarkvara unixi laadsetele süsteemidele mis sünkroniseerib faile ja kaustu ühest | + | Rsync on vaba tarkvara unixi laadsetele süsteemidele, mis sünkroniseerib faile ja kaustu ühest arvutite vahel. Rsync kasutab kodeerimist ja ei tekita varundamisel duplikaate, vaid tekitab viiteid failide vahel, vähendades sedaviisi infomahte ja kettakasutust. |
− | + | Veebisait | |
http://rsync.samba.org/ ja dokumentatsioon http://www.samba.org/rsync/documentation.html | http://rsync.samba.org/ ja dokumentatsioon http://www.samba.org/rsync/documentation.html | ||
− | Lihtne näide rsync kasutamisest | + | Lihtne näide rsync kasutamisest: |
− | sünkroniseerime faili lokaalsest masinast teise nimega host.ee | + | 1. sünkroniseerime faili lokaalsest masinast teise nimega host.ee |
rsync fail kasutaja@host.ee: | rsync fail kasutaja@host.ee: | ||
− | sünkroniseerime kausta lokaalsest masinast ümber | + | 2. sünkroniseerime kausta lokaalsest masinast ümber |
rsync -a kaust kasutaja@host.ee: | rsync -a kaust kasutaja@host.ee: |
Redaktsioon: 1. märts 2011, kell 16:31
Sisukord
Sissejuhatus
Rsync on vaba tarkvara unixi laadsetele süsteemidele, mis sünkroniseerib faile ja kaustu ühest arvutite vahel. Rsync kasutab kodeerimist ja ei tekita varundamisel duplikaate, vaid tekitab viiteid failide vahel, vähendades sedaviisi infomahte ja kettakasutust.
Veebisait http://rsync.samba.org/ ja dokumentatsioon http://www.samba.org/rsync/documentation.html
Lihtne näide rsync kasutamisest:
1. sünkroniseerime faili lokaalsest masinast teise nimega host.ee
rsync fail kasutaja@host.ee:
2. sünkroniseerime kausta lokaalsest masinast ümber
rsync -a kaust kasutaja@host.ee:
Sellise näite järgi on kõige lihtsam failide sünkroniseerimine. Toimib see samuti üle ssh ning on koormust tekitav viis.
Olulisemad võtmed
- --archive -a arhiivi võti mida kasutades kindlustatakse kuupäevade õiguste omanike ja linkide säilumine, soovituslik lisada igasuguste sünkroniseerimiste puhul.
- --verbose -v protsessi kohta põhjalikuma info näitamine nt failinimekiri
- --progress ülekande progressi kohta info
- --stats ülevaatlikum statistika kulunud ajast ja failide hulgast
- --compress -z toimub pakkimine enne ülekandmist
- --delete -d sihtkohast kustutatakse algallikas enam mitte eksisteerivad failid
- --exclude "*bak" mingite faililaiendite, failinimede ignoreerimine näiteks avi, mp3 võib määrata ka võtmega --exclude-from faili milles failides või kaustades asjadest mida ei varundata
- --numeric-ids ei üritata failide UID/GID muuta sünkroniseeritava süsteemi kasutajate järgi ja jäetakse need puutumatuna
Veel mõned erandjuhtudel vajaminevad parameetrid
- -n Mille korral rsync lihtsalt ütleb mida ta teeks ilma reaalselt faile üle kandmata
- -W Teatab rsyncile kanda üle terve fail selle asemel, et kasutada oma block leveli võrdlemise vahendeid. Kui kasutada on väga kiire võrguühendus võib see võti muuta tööd kiiremaks kuna rsync ei pea faile kontrollima, kasutades rsynci üle interneti on tõenäoliselt seda võtit kasutada ebapraktiline
- -c Käseb genereerida kõigi failide kontrollsummad. Kasutades seda võtit võib rsync muutuda üsnagi aeglaselt seega kasutada vaid tõsise vajaduse korral, näiteks kui kahtlus, et failide info on kuidagi rikutud.
- -z suunab rsynci kasutama zlib pakkimist
- -H, --hard-links Säilita hard lingid, vajalik nt kui ülekantavad andmed varundatud link-dest võtmega
Lisaks kui rsync teatab file has vanished tähendab seda, et failisüsteemis on sünkroniseerimise ajal tekkinud muudatusi
Exclude kohta veel,
--exclude "/foo" eraldab faili nimega foo kaustas kus hetkel asutakse mida näeb pwd käsuga
--exclude "foo/" eraldab kõik kaustad nimega foo
rsync server
Varundusserverit luues on mõistlik startida seal rsynci deemon mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele
Seadistusfailiks rsyncd.conf mis Linuxis /etc/rsyncd.conf ja FreeBSDs /usr/local/etc/rsyncd.conf
Näidis rsyncd.conf
uid = root gid = root use chroot = no max connections = 25 log file=/var/log/rsyncd.log [failid] path = /kus/failid/on comment = failid [pildid] path = /kus/pildid/on comment = failid dont compress = *
FreeBSD's tuleb rida gid = root asendada reaga gid = wheel
selle seadistusfailiga tekitame olukorra kus on kaks jaotist: failid ja pildid. Piltidele keelame direktiiviga "dont compress = *" andmevoo pakkimise kuna piltide pakkimine annab vähe eelist sama võib teha ka videosid sisaldavate kaustadega.
vaikimisi juba ei teha seda failidele laiendiga *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
Logimist võib korraldada ka läbi syslogi'i kasutades rida
syslog facility = local5
Või siis lihtsalt lisade syslog.confi rea
daemon.info /var/log/daemon.log
täpsemalt on seletatud asja logimise palas lahti http://kuutorvaja.eenet.ee/wiki/Logi. Võimalik seada local0 kuni locan7ni
Soovides lubada varundamisele kliente ligi vaid kindla parooliga tuleks share teha selliselt
[failid] path = /kus/failid/on comment = failid auth users = kasutaja secrets file = /etc/rsyncd.pass
tekitame faili /etc/rsyncd.pass paroolid hoitakse selles plaintextina. Tuleks jälgida ,et fail poleks world readable milleüle hakkaks rsync kurtma faili võime kirjutada näiteks
kasutaja:kasutaja
käsk paroolifailiga sünkroniseerimiseks ,et saada kaust /etc varundatud võiks olla siis näiteks
rsync --password-file /etc/rsyncd.pass -a /etc kasutaja@192.168.1.10::backup
Tulemüüri seadistamine
rsync töötades deemonina kasutab porti tcp 873
linux iptablesis saame müüri teha pordi lahti käsuga
iptables -I INPUT -p tcp -s 192.168.1.10 --dport 873 -j ACCEPT
FreeBSD packet filteris
pass in on $ext_if proto tcp from { 192.168.1.10 } to port 873
Muidugi võib seadistusfaili kirjutada kohe
hosts allow = *.host.ee hosts deny = *
nüüd võime anda käsu
rsync -a kaust root@host::failid
üleslaetud failide nimistut saab
rsync -v --list-only -a root@host.ee::pildid
kui pole öeldud muidugi list = false
Soovides limiteerida aeglasema kiirusega kohtades rsync kiirust tuleks kasutada rsync omadust --bwlimit=KBPS
Paroolita rsync kasutades ssh kopeerimist
Paroolifaili etteandmine ilma rsync serverit kasutamata ei toimi, sellisel juhul tuleks toimida järgnevalt
Genereerime privaatse ja avaliku võtme, kui parooli ei soovi vajutame lihtsalt enteri
# ssh-keygen -t rsa -b 4096 -f rsync-key Generating public/private rsa key pair. rsync-key already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in rsync-key. Your public key has been saved in rsync-key.pub. The key fingerprint is: e8:c7:f2:f1:da:2a:0f:a4:4f:63:89:9f:3e:9d:b9:87 root@loomaaed.zoo.ee
Kopeerime rsync.key.pub sisu sihtkoht masina faili authorized_keys
/root/.ssh/authorized_keys
Testime
ssh -i rsync-key root@192.168.1.10
ja rsync käsk näeb välja järgnev, ette tuleb anda rsync privaatne võti
rsync -av --delete -e "ssh -i /home/kasutaja/rsync-key" /srv/kauyst root@192.168.1.10:/srv/
Soovituslik oleks üldiselt kasutada sellistel juhtudel juba rsync serverit.
Snapshot stiilis backup
Rsync omab võtit --link-dest mis võimaldab full backupide tegemisel hoida kokku ruumi. Nimelt võtab rsync siis näiteks eelmise päeva backupi aluseks ja loob jooksva päeva backup kausta hardlingid failidest mis on juba olemas ning syncib ainult muutunud failid. Nii on kaustas full backup kuid selle suuruseks on vaid muutunud failide summa. Nii on võimalik teha paarkümmend full backupi kuid nende mahuks jääb kokkuvõtteks 1-2 maht.
Illustreeriv skeem, võetud lehelt http://web.cs.mun.ca/infrastructure/labnet/summary_educ4.html
Hardlink on symlingi sarnane. Nad on tavaliselt loodud ln käsuga kuid ilma -s võtmeta. Hard link kujutab endast seda kui 2 faili viitavad samale inodele ja kettablokile. Erinevalt symlingist pole tegemist eraldi failiga vaid lihtsalt kahe lingiga samale faili.e Kui kustutada ükskõik kumb viide jääb teine alles ning sisaldab infot.
Käsu süntaksiks on:
rsync -avH --link-dest=/backup/eile /root/kaust_mida_varundame /backup/tänane_backup
Anname rsyncile ette eilse backupi kausta, siis kausta mida soovime varundada ja kausta kuhu varundada.
Töö lihtsustamiseks võib luua skripti
#!/bin/sh t2na=`date "+%Y%m%d"` eile=`date -v-1d "+%Y%m%d"` mkdir /backup/$t2na rsync -avH --link-dest=/backup/$eile /root/kaust_mida_varundame /backup/$t2na
Loomulikult ei või aga kustutada ühtegi backup kausta kuna sellisel juhul lähevad hardlingid failide vahel katki.
Siin on näide skriptist mis salvestab 7 incremental varukoopiat http://www.syrlug.org/contrib/rsync.html
Veel juttu rsynciga snapshotide tegemisest aadressidel
Kiiruse limiteerimine
Kasutuse all olevates süsteemides võib sünkroniseerides juhtuda ,et rsync hakkab liiga ohtralt io/protsessoriaega kulutama ja server muutub selle käigus aeglaseks, selpuhul on kasulik limiteerida kiirust näiteks järgnevalt
rsync --bwlimit=1000 fail1 fail2
kiirus tuleb märkida kilobaitides, number näitab täpsemalt mitu kilobaiti sekundus lubatakse saata. Teine hea võimalus on kasutada nice käsku
Lingid
- http://wiki.itcollege.ee/index.php/Rsync
- http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp rsynci versioon windowsile