Erinevus lehekülje "Rsync" redaktsioonide vahel
(→Olulisemad võtmed) |
(→Paroolita rsync kasutades ssh kopeerimist) |
||
126. rida: | 126. rida: | ||
===Paroolita rsync kasutades ssh kopeerimist=== | ===Paroolita rsync kasutades ssh kopeerimist=== | ||
− | Paroolifaili etteandmine ilma rsync serverit kasutamata ei toimi, sellisel juhul tuleks | + | Paroolifaili etteandmine ilma rsync serverit kasutamata ei toimi, sellisel juhul tuleks teha järgnevalt |
Genereerime privaatse ja avaliku võtme, kui parooli ei soovi vajutame lihtsalt enteri | Genereerime privaatse ja avaliku võtme, kui parooli ei soovi vajutame lihtsalt enteri |
Redaktsioon: 19. november 2009, kell 18:11
Sisukord
Sissejuhatus
Rsync on vaba tarkvara unixi laadsetele süsteemidele mis sünkroniseerib faile ja kaustu ühest asukohast teise. Kasutades kodeerimist vähendades infomahte.
veebisait http://rsync.samba.org/
Lihtne näide rsync kasutamisest
sünkroniseerime faili lokaalsest masinast teise nimega host.ee
rsync fail kasutaja@host.ee:
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 võti
- --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 kustutatakse mitte eksisteerivad failid eelnevast backupist
- --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 backupida
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. Tavajuhul rsync lihtsalt võrdleb faili loomise ja muutmise aeg, et selgitada välja kas see on muutunud või ei. 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
Kui rsync teatab file has vanished tähendab seda, et failisüsteemis on syncimise aeg tekkinud muudatusi
rsync server
Varundusserverit luues on mõistlik startida seal rsynci deemon mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele
Seadistusfailiks 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 teakitame 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
täpsemalt on seletatud asja logimise palas lahti http://kuutorvaja.eenet.ee/wiki/Logi. Võimalik seada local0 kuni locan7ni
tulemüüri seadistus
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
kasutajad - paroolid
Soovides lubada varundamisele kliente ligi vaid 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
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 teha 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.
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.
Kiiruse limiteerimine
Mitmeid töötavaid süsteeme syncides võib juhtuda ,et rsync hakkab liiga ohtralt io/protsessoriaega kulutama siis on hea seda limiteerida näiteks lokaalselt
rsync --bwlimit=1000 fail1 fail2
kiirus tuleb märkida kilobaitides mida sekundus lubatakse saata
Teine hea võimalus on kasutada nice käsku