Erinevus lehekülje "Rsync" redaktsioonide vahel

Allikas: Kuutõrvaja
 
(ei näidata 3 kasutaja 109 vahepealset redaktsiooni)
1. rida: 1. rida:
 
===Sissejuhatus===
 
===Sissejuhatus===
  
Rsync on vaba tarkvara unixi laadsetele süsteemidele mis sünkroniseerib faile ja kaustu ühest asukohast teise. Kasutades kodeerimist vähendades infomahte.
+
Rsync on vabavara unixi laadsetele op süsteemidele, mis teeb andmete sünkroniseerimese arvutite vahel väga lihtsaks. Rsync kasutab kodeerimist ja ei tekita varundamisel duplikaate, vaid loob viiteid failide vahel, vähendades sedaviisi infomahte ja ka kettakasutust.
  
veebisait
+
Veebisait http://rsync.samba.org/ ja dokumentatsioon http://www.samba.org/rsync/documentation.html.
http://rsync.samba.org/
 
  
 +
Lihtne näide rsync kasutamisest:
  
Lihtne näide rsync kasutamisest
+
Sünkroniseerime faili lokaalsest masinast teise nimega host.ee
 
 
sünkroniseerime faili lokaalsest masinast teise nimega host.ee
 
 
   
 
   
  rsync fail kasutaja@host.ee:
+
  rsync fail.laiend kasutaja@host.ee:
  
sünkroniseerime kausta lokaalsest masinast ümber
+
Sünkroniseerime kausta lokaalsest masinast teise
  
 
  rsync -a kaust kasutaja@host.ee:
 
  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.
+
Rsync toimib ka üle tavalise OpenSSH (Kuid on rohkem koormust tekitav).
 +
 
 +
===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
 +
*-i - kui nö tavalise võtmekomplekti '-avH --numeric-ids' puhul ei esitata andmeid kui ainult faili metaandmed muutuvad, nt omanik, siis -i lisamisel esitatakse
 +
*-A --acls säilita acl-id
 +
*-X --xattrs säilitada laiendatud atribuudid
 +
 
 +
Lisaks kui rsync teatab file has vanished tähendab seda, et failisüsteemis on sünkroniseerimise ajal tekkinud muudatusi
 +
 
 +
Tasub ettevaatlik ning tähelepanelik olla kaika (/) märgi kasutamisega. kui tahad kopeerida kataloogi alla, siis pane teisele argumendile kaigas ja esimesele mitte.
 +
Kui tahad kopeerida kataloogi (/mnt -> /mnt ntx), siis pane esimesele kaigas ja teisele mitte. Kaks näidet kuidas selle asetsemine võib käsu tundmatuseni muuta:
 +
 
 +
*--exclude "/foo"
 +
eraldab faili nimega foo kaustas kus hetkel asutakse mida näeb pwd käsuga
 +
 
 +
*--exclude "foo/"
 +
eraldab aga kõik kaustad nimega foo
 +
 
 +
Võimalus on tekitada ka kausta mida arhiveeritakse fail .rsync-filter sisuga
 +
+ *.mbox/***
 +
- *
 +
ja käsuraltuleb lisada -F võti.
  
 +
===rsync server===
  
'''rsync deemonina'''
+
Varundusserverit luues on mõistlik startida seal rsynci deemon, mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele.
  
/etc/rsyncd.conf
+
Seadistusfailiks on rsyncd.conf mis vaikimisi Linuxis /etc/rsyncd.conf ja FreeBSDs /usr/local/etc/rsyncd.conf
 +
 
 +
Näidis failist rsyncd.conf:
  
 
  uid = root
 
  uid = root
28. rida: 67. rida:
 
  use chroot = no
 
  use chroot = no
 
  max connections = 25
 
  max connections = 25
  syslog facility = local5
+
  log file=/var/log/rsyncd.log
 +
 +
pid file = /var/run/rsyncd.pid
 
   
 
   
 
  [failid]
 
  [failid]
 
         path = /kus/failid/on
 
         path = /kus/failid/on
 
         comment = failid
 
         comment = failid
 +
        read only = false
 
   
 
   
 
  [pildid]
 
  [pildid]
39. rida: 81. rida:
 
         dont  compress = *
 
         dont  compress = *
  
 +
NB! Kasutades FreeBSDd tuleb rida  "gid = root" asendada reaga  "gid = wheel". read only parameeter on ääretult oluline, kui soovid rsync'ida faile serverisse. Vastasel juhul saad veateate, et "module is read only".
 +
 +
Seadistusfail tekitab kaks jaotist:
 +
Failid ja Pildid. Piltidele keelame direktiiviga "dont compress = *" andmevoo pakkimise,
 +
kuna pildid on juba pakitud ning suurt eelist see ei anna. Sama võib teha ka videosid sisaldavate kaustadega.
 +
 +
Seda meetodit rakendatakse vaikimisi failitüüpidele: *.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 lihtsalt lisada syslog.conf'i rea:
 +
 +
daemon.info                                    /var/log/daemon.log
 +
 +
Logimisest saab lugeda täpsemalt [http://kuutorvaja.eenet.ee/wiki/Logi sellest palast].
 +
 +
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
 +
  read only = false
 +
 +
Tekitame faili /etc/rsyncd.pass sisuga
 +
 +
kasutaja:salasona
 +
 +
Pange tähele, et paroolid hoitakse failis tavalise tekstina (plain text). Kindlasti tuleb paika panna paroolifaili õigused (ainult omanikule lugemiseks), vastasel juhul annab rsync veateate ja paroolifaili ignoreeritakse!
 +
 +
===rsync klient===
 +
 +
Ka klient masinas same parooli hoida eraldi failis. Tekitame /etc/rsyncd.pass faili sisuga
 +
 +
salasona
 +
 +
Kausta /etc sünkroniseerimiseks varundamise serveriga:
  
sellega tekitasime seadistuse kus on kaks jaotist
+
$ rsync --password-file /etc/rsyncd.pass -a /etc kasutaja@192.168.1.10::failid
failid ja pildid. Piltidele ütleme dont  compress = *
 
kuna piltide pakkimine annab vähe eelist sama võib teha ka videote kaustadega.
 
  
vaikimisi juba ei teha seda failidele laiendiga *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
+
Failide taastamine
  
rida syslog facility = local5 on seletatud pikemalt logimise palas lahti. Võimalik seada
+
$ rsync --password-file=/etc/rsyncd.pass -a kasutaja@192.168.1.10::failid /tmp/
local0 kuni locan7ni
+
 
 +
===Tulemüüri seadistamine===
  
 
rsync töötades deemonina kasutab porti tcp 873  
 
rsync töötades deemonina kasutab porti tcp 873  
53. rida: 134. rida:
 
linux iptablesis saame müüri teha pordi lahti käsuga
 
linux iptablesis saame müüri teha pordi lahti käsuga
  
  iptables -I INPUT -p tcp -s ip_192.168.1.10 --dport 873 -j ACCEPT  
+
  iptables -I INPUT -p tcp -s 192.168.1.10 --dport 873 -j ACCEPT  
  
 
FreeBSD packet filteris
 
FreeBSD packet filteris
  
pass in on $ext_if proto tcp from { 192.168.1.10 } to port 873  
+
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 kasutaja@server::jaotisenimi
 +
 
 +
 +
$ rsync -a kaust kasutaja@arhiiv.zoo.tartu.ee::failid
 +
 
 +
üleslaetud failide nimistut saab
 +
 
 +
$ rsync -v --list-only -a root@host.ee::failid
 +
 
 +
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 masinas kasutaja faili .ssh/authorized_keys
 +
 
 +
$ scp rsync-key.pub remoteuser@remotehost:/home/remoteuser/
 +
 
 +
Seal masinas anname käsud
 +
 +
$ cat thishost-rsync-key.pub >> .ssh/authorized_keys
 +
$ chmod 700 .ssh
 +
$ chmod 600 .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.
 +
 
 +
[[Pilt:Summary educ4 html 61d7cbef.png]]
 +
 
 +
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
 +
 
 +
<source lang=bash>
 +
#!/bin/sh
 +
t2na=`date "+%Y%m%d"`
 +
eile=`date -v-1d "+%Y%m%d"`
 +
mkdir /backup/$t2na
 +
rsync -avH --link-dest=/backup/$eile /www/kaust/mida/varundame /backup/$t2na
 +
</source>
 +
 
 +
Ajaformaat tuleb kujul 20120809 ning võti -v-1d lahutab selest maha ühe päeva.
 +
 
 +
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
 +
 
 +
Juhul kui soovime sälitada vaid 28n päeva andmed siis tulb lisada skripti järgnev osa
 +
 
 +
DAY29=`date -v-29d "+%Y%m%d"`
 +
if [ -d /backup/website/$DAY29 ]
 +
then
 +
rm /backup/$DAY29
 +
fi
 +
 
 +
Veel juttu rsynciga snapshotide tegemisest aadressidel
 +
 
 +
* http://blog.interlinked.org/tutorials/rsync_time_machine.html
 +
 
 +
* http://www.mikerubel.org/computers/rsync_snapshots/
 +
 
 +
===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
 +
 
 +
===Sudo kasutamine===
  
nüüd võime anda käsu
+
Vahel pole võimalik root kasuajana logida aga vaja täisõigusi, selleks aitab kui lisada rsyncile võti
  
  rsync -a kaust root@host::failid
+
  --rsync-path="sudo rsync"
  
 +
Ning /etc/sudoers faili
  
  [failid]
+
  username ALL= NOPASSWD:/usr/bin/rsync
  path = /kus/failid/on
+
 
  comment = failid
+
===Probleemid===
  auth users = username
+
 
  secrets file = /etc/rsyncd.scrt
+
Ühes servers kippis rsync ikka aegajalt viskama teadet, et ei saa sünkroniseerimist lõpetada.
 +
 
 +
Output:
 +
ERROR: out of memory in receive_sums [sender]
 +
rsync error: error allocating core memory buffers (code 22) at util.c(117)  [sender=3.0.9]
 +
 
 +
Aitas, kui muutsin block-size suurust 1024 pealt ümber:
 +
 
 +
--block-size 2048
 +
 
 +
===Lingid===
 +
 
 +
* http://wiki.itcollege.ee/index.php/Rsync
 +
* http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp rsynci versioon windowsile
 +
 
 +
* http://dailycupoftech.com/windows-backup-with-rsync-and-freenas/ veel juttu windowsi peal rsynci kasutamisest
 +
 
 +
*http://qtdtools.doering-thomas.de/page.php?seite=0&sub=0&lang=en veel üks windowsi rsynci kasutajaliides
 +
 
 +
* https://serverfault.com/questions/746551/faster-rsync-of-huge-directory-which-was-not-changed Väga suure hulga failide varundamine

Viimane redaktsioon: 28. juuli 2021, kell 15:05

Sissejuhatus

Rsync on vabavara unixi laadsetele op süsteemidele, mis teeb andmete sünkroniseerimese arvutite vahel väga lihtsaks. Rsync kasutab kodeerimist ja ei tekita varundamisel duplikaate, vaid loob viiteid failide vahel, vähendades sedaviisi infomahte ja ka kettakasutust.

Veebisait http://rsync.samba.org/ ja dokumentatsioon http://www.samba.org/rsync/documentation.html.

Lihtne näide rsync kasutamisest:

Sünkroniseerime faili lokaalsest masinast teise nimega host.ee

rsync fail.laiend kasutaja@host.ee:

Sünkroniseerime kausta lokaalsest masinast teise

rsync -a kaust kasutaja@host.ee:

Rsync toimib ka üle tavalise OpenSSH (Kuid on rohkem koormust tekitav).

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
  • -i - kui nö tavalise võtmekomplekti '-avH --numeric-ids' puhul ei esitata andmeid kui ainult faili metaandmed muutuvad, nt omanik, siis -i lisamisel esitatakse
  • -A --acls säilita acl-id
  • -X --xattrs säilitada laiendatud atribuudid

Lisaks kui rsync teatab file has vanished tähendab seda, et failisüsteemis on sünkroniseerimise ajal tekkinud muudatusi

Tasub ettevaatlik ning tähelepanelik olla kaika (/) märgi kasutamisega. kui tahad kopeerida kataloogi alla, siis pane teisele argumendile kaigas ja esimesele mitte. Kui tahad kopeerida kataloogi (/mnt -> /mnt ntx), siis pane esimesele kaigas ja teisele mitte. Kaks näidet kuidas selle asetsemine võib käsu tundmatuseni muuta:

  • --exclude "/foo"

eraldab faili nimega foo kaustas kus hetkel asutakse mida näeb pwd käsuga

  • --exclude "foo/"

eraldab aga kõik kaustad nimega foo

Võimalus on tekitada ka kausta mida arhiveeritakse fail .rsync-filter sisuga

+ *.mbox/***
- *

ja käsuraltuleb lisada -F võti.

rsync server

Varundusserverit luues on mõistlik startida seal rsynci deemon, mis võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele.

Seadistusfailiks on rsyncd.conf mis vaikimisi Linuxis /etc/rsyncd.conf ja FreeBSDs /usr/local/etc/rsyncd.conf

Näidis failist rsyncd.conf:

uid = root
gid = root
use chroot = no
max connections = 25
log file=/var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

[failid]
       path = /kus/failid/on
       comment = failid
       read only = false

[pildid]
       path = /kus/pildid/on
       comment = failid
       dont  compress = *

NB! Kasutades FreeBSDd tuleb rida "gid = root" asendada reaga "gid = wheel". read only parameeter on ääretult oluline, kui soovid rsync'ida faile serverisse. Vastasel juhul saad veateate, et "module is read only".

Seadistusfail tekitab kaks jaotist: Failid ja Pildid. Piltidele keelame direktiiviga "dont compress = *" andmevoo pakkimise, kuna pildid on juba pakitud ning suurt eelist see ei anna. Sama võib teha ka videosid sisaldavate kaustadega.

Seda meetodit rakendatakse vaikimisi failitüüpidele: *.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 lihtsalt lisada syslog.conf'i rea:

daemon.info                                     /var/log/daemon.log

Logimisest saab lugeda täpsemalt sellest palast.

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
  read only = false

Tekitame faili /etc/rsyncd.pass sisuga

kasutaja:salasona

Pange tähele, et paroolid hoitakse failis tavalise tekstina (plain text). Kindlasti tuleb paika panna paroolifaili õigused (ainult omanikule lugemiseks), vastasel juhul annab rsync veateate ja paroolifaili ignoreeritakse!

rsync klient

Ka klient masinas same parooli hoida eraldi failis. Tekitame /etc/rsyncd.pass faili sisuga

salasona

Kausta /etc sünkroniseerimiseks varundamise serveriga:

$ rsync --password-file /etc/rsyncd.pass -a /etc kasutaja@192.168.1.10::failid

Failide taastamine

$ rsync --password-file=/etc/rsyncd.pass -a kasutaja@192.168.1.10::failid /tmp/

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 kasutaja@server::jaotisenimi


$ rsync -a kaust kasutaja@arhiiv.zoo.tartu.ee::failid

üleslaetud failide nimistut saab

$ rsync -v --list-only -a root@host.ee::failid

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 masinas kasutaja faili .ssh/authorized_keys

$ scp rsync-key.pub remoteuser@remotehost:/home/remoteuser/ 

Seal masinas anname käsud

$ cat thishost-rsync-key.pub >> .ssh/authorized_keys 
$ chmod 700 .ssh
$ chmod 600 .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.

Summary educ4 html 61d7cbef.png

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 /www/kaust/mida/varundame /backup/$t2na

Ajaformaat tuleb kujul 20120809 ning võti -v-1d lahutab selest maha ühe päeva.

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

Juhul kui soovime sälitada vaid 28n päeva andmed siis tulb lisada skripti järgnev osa

DAY29=`date -v-29d "+%Y%m%d"`
if [ -d /backup/website/$DAY29 ]
then
rm /backup/$DAY29
fi

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

Sudo kasutamine

Vahel pole võimalik root kasuajana logida aga vaja täisõigusi, selleks aitab kui lisada rsyncile võti

--rsync-path="sudo rsync"

Ning /etc/sudoers faili

username ALL= NOPASSWD:/usr/bin/rsync

Probleemid

Ühes servers kippis rsync ikka aegajalt viskama teadet, et ei saa sünkroniseerimist lõpetada.

Output:
ERROR: out of memory in receive_sums [sender]
rsync error: error allocating core memory buffers (code 22) at util.c(117)  [sender=3.0.9]

Aitas, kui muutsin block-size suurust 1024 pealt ümber:

--block-size 2048 

Lingid