Jun
6
2007

Backup

??e slu??ajno niste geek wannabe, uporabljate Windowse (za Mac OSX pride del tega posta celo v po??tev!) ali pa vam je preprosto vseeno za va??e podatke, vas prosim, da ta post presko??ite, kot je dolg in ??irok… V nasprotnem primeru si utegnete od samega zehanja izpahniti ??eljust in kar je ??e huj??e: p4b.nu oceniti kot blog, ki vas ne zanima. Bili ste opozorjeni, zato bom kar za??el.

Verjetno ste se ??e zna??li v situaciji, da vam je odpovedal trdi disk, ko ste refleksno spraznili “ko??” ali pa samozavestno zbrisali napa??no particijo ob in??talaciji operacijskega sistema. Orodja za “data recovery” so seveda na voljo, a delujejo le v dolo??enih primerih, z omejeno funkcionalnostjo, njih uporaba pa vedno vzame preve?? ??asa. Da ne govorim o stresu. Re??itev, ki se jo ve??ina ponavadi poslu??i, je periodi??no shranjevanje pomembnih podatkov na druge diske, particije ali opti??ne nosilce. Sem pa tja.

Omenjena metoda ima nekaj resnih pomankljivosti:
a) vse skupaj je skrajno zamudno in kar je ??e huje – zoprno
b) periode shranjevanja so najve??krat predolge (npr. 1x na mesec)
c) ??e vam lopovi ukradejo ra??unalnik ali vam zgori stanovanje, boste verjetno ostali tudi brez varnostnih kopij

OK, priznam… za zadnjo situacijo je potrebna res velika smola in ??e vam zgori stanovanje, diploma verjetno ni va?? najve??ji problem. A vseeno.

Vse pomankljivosti z lahkoto odpravimo, ??e uporabljamo Linux ali kak??en drug derivat Unixa. Mac OS X will do, too. Da bo zadeva ??imbolj enostavna, bomo predpostavili, da imamo samo 2 ra??unalnika – doma??ega, na katerem so pomembni podatki in oddaljen stre??nik za backup lokacijo. Oba imata stalen IP naslov in omogo??en SSH dostop, z ustrezno prilagojenimi po??arno-zidnimi nastavitvami.

Na??a glavna orodja bodo ukazi rsync, crontab in ssh. Prvi izvaja dejansko sinhronizacijo datotek in map, druga dva pa odpravljata prej opisane te??ave; crontab periodi??no izvaja poljuben ukaz (rsync), ssh pa zagotavlja varno povezavo med ra??unalnikoma.

Najprej seveda dolo??imo pomembne datoteke in mape na doma??em ra??unalniku A, ki je dosegljiv na izmi??ljenem IP naslovu 84.10.10.10. Ker nismo zahtevni, se odlo??imo za /home/uporabnik/diplomska_naloga. Mapa naj se skopira na stre??nik (ra??unalnik B), dosegljivem na (spet izmi??ljenem) 193.10.10.10. Radi bi, da se kopiranje izvaja 2x dnevno, ob 1h zjutraj in ob 3h popoldan. Odgovornost za to prevzame ra??unalnik B (stre??nik), ki se ob predpisanem ??asu samodejno pove??e na (doma??i) ra??unalnik A in izvede sinhronizacijo tako, da prenese samo nove ali spremenjene datoteke.

Za??nemo… in ??e naletimo na prvo te??avo. Za SSH-janje na ra??unalnik A je potrebno vsaki?? ro??no vpisati geslo (kar seveda ovira backup proceduro), zato uporabimo naslednji trik:

Pove??emo se na ra??unalnik B (ta korak presko??ite, ??e ste ??e na stre??niku, ki bo skrbel za backup)

1) X:# ssh uporabnik@193.10.10.10 ... in vpi??emo geslo

Nato kreiramo javni in zasebni klju??. Ko nas ra??unalnik vpra??a za geslo, 2x pritisnemo Enter (s tem ustvarimo zasebni klju?? brez gesla)

2) B:# ssh-keygen -f backup_key -t rsa

Skopiramo (copy) vsebino datoteke backup_key.pub (javni klju??), ki je oblike “ssh-rsa AAAAA3PnaZ1c… == uporabnik@hostname”.
Na ra??unalniku A odpremo skrito datoteko authorized_keys (??e ne obstaja, jo ustvarimo)

3) A:# nano /home/uporabnik/.ssh/authorized_keys

in dodamo (paste) prej skopirano vsebino. Preverite, da se je skopirala res celotna vrstica, ki se mora zaklju??iti z nizom oblike uporabnik@hostname.

Poskusimo se povezati iz ra??unalnika B na ra??unalnik A (brez uporabe gesla)

4) B:# ssh -i backup_key uporabnik@84.10.10.10

??e deluje, dodatno poskrbimo za varnost privatnega klju??a

5) B:# chmod 400 backup_key

Prvi del je kon??an, ra??unalnika se “??tekata”. Gremo naprej…

Na ra??unalniku B naredimo mapo /home/uporabnik/backup

6) B:# mkdir /home/uporabnik/backup

Sledi poskus sinhronizacije:

7) B:# rsync -avz -e "ssh -i backup_key" uporabnik@84.10.10.10:/home/uporabnik/diplomska_naloga /home/uporabnik/backup

Ko se prenos zaklju??i, preverimo vsebino mape /home/uporabnik/backup/diplomska_naloga na ra??unalniku B in ??e je identi??na tisti na doma??em ra??unalniku A, celoten ukaz skopiramo (copy), ustvarimo script datoteko

8) B:# nano /home/uporabnik/backup_script.sh

in skopirano vsebino prilepimo (paste).

Drugi del je kon??an. Na stre??niku imamo delujo??o skripto, ki zna poskrbeti za backup na??e diplome. Ostane nam samo ??e avtomatika.

Na stre??niku po??enemo crontab v urejevalnem na??inu,

9) B:# crontab -e

vpi??emo: 0 1,15 * * * /home/uporabnik/backup_script.sh

in smo gotovi.

Ob 1h zjutraj in ob 3h popoldan se bo oddaljen stre??nik povezal na va?? doma??i ra??unalnik in naredil varnostno kopijo novo ustvarjenih ali spremenjenih datotek. Tudi ??e vam zgori stanovanje, lahko ??e vedno diplomirate v predpisanem roku… V tem primeru diplomsko komisijo obvezno seznanite z neljubo situacijo in opazujte njihovo prikimavanje, ki je rezultat va??e neizmerne odgovornosti, znanja in discipline. Skromno se nasmehnite in skomignite z rameni.

Opisani postopek je precej “na prvo ??ogo” in skrajno poenostavljen, a ponuja dokaj visok nivo varnosti. Spodaj sta nakazana ??e dva dodatna mehanizma, katerih namen je obve????anje o uspe??nosti zgoraj opisane procedure.

1) Logging – crontab zna output skripte, ki jo po??enemo, shraniti tudi v datoteko. Tako lahko preverimo, ??e se je backup res izvedel in kaj se je preneslo:

B:# crontab -e
0 1,15 * * * /home/uporabnik/backup_script.sh >> /home/uporabnik/backup.log 2>&1

2) E-mail – backup.log si lahko po??ljemo na poljubni e-mail naslov.

Naredimo e-mail header datoteko
B:# nano /home/uporabnik/backup_email_header
Kamor vpi??emo npr:
From: “backup@domena.com”
To: “uporabnik@domena.com”
Subject: Backup Report

Naredimo novo skripto, ki bo vse skupaj poslala…
B:# nano send_backup_email.sh, vpi??emo

cp backup_email_header backup_email
cat backup.log >> backup_email
cat backup_email | sendmail -t -bm
rm backup_email

.. in vse skupaj avtomatiziramo s “crontab”, seveda z ustreznim zamikom. Pri celi zadevi je skoraj nujno, da sta oba ra??unalnika ??asovno usklajena z zunanjim stre??nikom, ki skrbi za to??en ??as (NTP). Ve?? kot primeren bo slovenski stre??nik goodtime.ijs.si.

Objavil: besso        Kategorije: Uncategorized        Komentarji (2)

Komentarji (2) »

RSS feed za komentarje na to objavo. TrackBack URI

  1. Ja, ja … oboje se mi je ??e zgodil. Format napa?ne particije in nepremi??ljena izpraznitev ko??a. Nazadnje sem Janji zbrisu celo diplomo… Ampak je na sre?o mela backup.

    Komentiral(a) je kruh — June 6, 2007 #

  2. rsync je zakon…edin dve stvari:
    ponavad ma?? “seminarske naloge” sortirane po poddirektorijih in je zato priporo?ljiva uporaba -r switch-a (in -l, ?e je kdo tak, da uporablja linke, namesto kopiranja ;) )
    pa ??e hint… ker je ro?no editiranje crontaba pain in the hiney, je velik la??i kopiranje backup skripte v /etc/cron.daily re?mo…(za non-h4x0rj3 sevede ;) )

    Komentiral(a) je Cygo — June 6, 2007 #

Komentiraj objavo

Èe želiš komentirati, moraš biti prijavljen.




Creative Commons License

p4b.nu is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Slovenia License.

Mashin' it BrandNu style | We also Twitter | Contacts, inquiries and DJ bookings via contact [at] p4b.nu
Design by Ozren :: template by #kruh :: developed and hosted by APPoteka
Inspired by WordPress - Code is poetry
Entries and comments feeds Valid XHTML and CSS ^Top^