.mrt memo

tail -f /dev/mind > blog

Varundamine rsynciga

leave a comment »

Standardprobleem – mõistliku inimesena tahaks oma failidest varukoopiat hoida juhuks kui vint ühel heal päeval oma viimase laulu siristab.

Kõige lihtsam moodus midagi varundada on kopeerida andmed teisele salvestusmeediale (kas hiirega lohistades või cp -r), mis on vähemalt sama suur kui originaal. Kuid kui allikas midagi muutub (lisatakse, kustutatakse), siis tahaks, et see muudatus jõuaks ka varukoopiasse. cp -r aitaks siin muutunud ja lisandunud andmeid kopeerida, kuid siin on kolm probleemi:

  • allikas kustutatud/liigutatud andmed jäävad sihtpunkti ikka alles
  • iga varukoopia võtab aega sama kaua kui esimene täis-varukoopia
  • varukoopia suurus kasvab isegi siis, kui allikas faile kustutada ja nende asemele uusi lisada (andmed kumuleeruvad)

Standardutiliit rsync võrdleb faile suuruse ja muutmiskuupäeva (–checksum parameetrit kasutades aga hoopis kontrollsumma) alusel ning kopeerib varukoopiasse ainult faile, mis on muutunud või juurde tekkinud. Ning –delete parameetriga ka kustutab allikast kadunud faile, et ruumi kokku hoida. Olgu siinkohal näiteks ka üks mugav oneliner ära toodud:

rsync –recursive –delete –verbose  –stats –itemize-changes –human-readable –archive –dry-run –exclude “*.log” /source/ /destination/

Kasutan siinkohal loetavuse huvides pikki parameetreid (–recursive), kuid suuremosale leidub ka lühem variant (-r).

–recursive => läbi alamkataloogid rekursiivselt otsides muutunud faile
–delete => kustuta allikast kadunud failid ka varukoopiast ära (ruumi kokkuhoiu mõttes)
–verbose => väljund jutustab pisut enam
–stats => lõpus kuvatakse varundamisprotsessi statistika
–itemize-changes => näitab detailsemalt failidega tehtut
–human-readable => numbrid lihtsamini hoomatavatele kujudele 1024B asemel ~1KB
–archive => lühidalt jätab failide õigused ja ajad allikale vastavaks
–dry-run => kasulik käsk simuleerimaks kogu kokku kirjutatud käsurea tööd, ei tee päriselt muudatusi allikasse ega koopiasse
–exclude “failitee muster” => võimalus varukoopiast midagi konkreetset välja jätta, vastavalt mustrile

Üks olulisemaid parameetreid on vast –archive. Ilma selleta oleks tegemist põhimõtteliselt lihtsalt “cp -r“, kuna igal rsync-i kopeerimisel faili muudatuste ajad muutuvad ning järgmisel korral rsync vaatab taaskord, et allikas on teine aeg, mis varukoopias. Siit teeb rsync järelduse, et hoolimata sarnasest suurusest võib olla fail muutunud. Kui tähele ei pane, siis võib tekitada hämmeldust, et miks sama käsu kaks korda järjest käivitamine ikka sama kaua aega võtab. Korrektselt kirjutatud käsu puhul peaks teine käivitamine võtma ainult nii kaua aega, kaua läheb varundatavate failide suuruste ja muutmiskuupäevade samasuses veendumiseks vaja.

PS

rsyncil on palju võimalusi kopeerimist mudida. Muuhulgas ei pea käsu algatajaks olema ei allikfailide ega ka sihtmärkfailide asukohaks olev kast, vaid kolmas vahendaja.

Kui kopeerimise ajal ühendus katkeb, siis pärast võid sama käsu uuesti selga lasta ja rsync jätkab sealt, kus pooleli jäi.

Viiteid

Written by dotmrt

2010/03/02 at 02:17:17

Posted in it, linux

Tagged with ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: