Erinevus lehekülje "Rsync" redaktsioonide vahel

Allikas: Kuutõrvaja
26. rida: 26. rida:
 
*--compress -z toimub pakkimine enne ülekandmist
 
*--compress -z toimub pakkimine enne ülekandmist
 
*--delete -d kustutatakse mitte eksisteerivad failid eelnevast backupist
 
*--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 -X faili milles failides või kaustades asjadest mida ei backupida
+
*--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
  
 
===rsync deemonina===
 
===rsync deemonina===

Redaktsioon: 30. aprill 2009, kell 15:08

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.

Põhilised 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

rsync deemonina

Vajalik näiteks varundusserverile. Rsync deemon kuulab pidevalt ja võimaldab parooliga ligipääsu lugemiseks/kirjutamiseks teatud kaustadele

/etc/rsyncd.conf freebsdl /usr/local/etc/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

sellega tekitasime seadistuse kus on kaks jaotist 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

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üür

rsync töötades deemonina kasutab porti tcp 873

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 

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 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.

Käsu süntaksiks on:

rsync -av --link-dest=$PWD/prior_dir host:src_dir/ new_dir/

Näiteks

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