A dump(8), tar(1) és cpio(1) a három legfontosabb biztonsági mentésekkel kapcsolatos program.
A UNIX(R) típusú rendszerekben a
biztonsági mentést hagyományosan a
dump és restore
programok végzik. A meghajtókat lemezblokkok
összeségeként kezelik, az
állományrendszerek által létrehozott
állományok, linkek és
könyvtárak szintje alatt. Eltérően
más, biztonsági mentést végző
szoftverektől, a dump az adott
eszközön egy egész
állományrendszert képes lementeni. Nem
képes csak az állományrendszer vagy egy
több állományrendszerre kiterjedő
könyvtárszerkezet egy részét
lementeni. A dump nem
állományokat és könyvtárakat
ír a szalagra, hanem nyers adatblokkokat, amelyek
állományokat és könyvtárakat
formáznak. A restore parancs az
adatokat alapértelmezés szerint a /tmp könyvtárba
tömöríti ki. Ha nem lenne elegendő
helyünk a /tmp
könyvtárban, akkor a TMPDIR
környezeti változó
átállításával ehelyett
megadhatunk egy olyat, ahol már kellő
mennyiségű terület áll
rendelkezésre a restore
akadálytalan lefutásához.
Ha a dump parancsot a
gyökér könyvtárban adjuk ki, akkor nem
fogja lementeni a /home vagy
/usr vagy bármilyen más
könyvtárat, mivel ezek jellemző módon
más állományrendszerek
csatlakozási pontja vagy más
állományrendszerekre mutató szimbolikus
linkek.
A dump parancsnak vannak olyan
rigolyái, amelyek még az AT&T UNIX 6.
verziójából (1975
környékéről) maradtak vissza. Az
alapértelmezett paraméterezése 9
sávos szalagokat feltételezi (6250 bpi), nem pedig
a napjainkban elterjedt nagy
írássűrűsségű
(egészen 62 182 ftpi-s) adathordozókat. Ezek
az alapértelmezések természetesen
paranccsorból felülbírálhatóak,
és így a manapság alkalmazott szalagos
meghajtók teljes kapacitása is
kihasználható vele.
Emellett az rdump és
rrestore programok
segítségével hálózaton
keresztül is le tudjuk menteni az adatainkat egy
másik számítógépre
csatlakoztatott szalagos egységre. Mind a két
program az rcmd(3) és a ruserok(3) parancsokat
használja a távoli szalagos meghajtó
eléréséhez. Az rdump
és rrestore paramétereinek a
távoli számítógép
használatához kell illeszkedniük. Amikor egy
FreeBSD rendszerű számítógépet az
rdump paranccsal egy Sun rendszerű,
komodo nevű
számítógépre mentünk, amelyhez
egy Exabyte szalagos meghajtó csatlakozik, akkor ezt a
írjuk be:
#/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Figyelem: az .rhosts
állományon keresztül
hitelesítésnek megvannak a maga biztonsági
kockázatai. Ne felejtsük el felmérni ezt a
saját környezetünkben sem.
A dump és
restore parancsokat az ssh
használatával még
biztonságosabbá tehetjük.
dump használata az
ssh alkalmazással#/sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ célfelhasználó@cél.gép.hu dd of=/nagyállományok/dump-usr-l0.gz
Vagy az RSH környezeti
változó megfelelő
beállításával használhatjuk a
dump beépített
módszerét:
dump használata az
ssh alkalmazással, az
RSH környezeti változó
beállításával#RSH=/usr/bin/ssh /sbin/dump -0uan -f célfelhasználó@cél.gép.hu:/dev/sa0 /usr
A tar(1) is az AT&T UNIX 6.
verziójáig nyúlik vissza (tehát
nagyjából 1975-ig). A tar az
állományrendszerrel szoros
együttműködésben dolgozik,
állományokat és könyvtárakat
ír a szalagra. A tar ugyan nem ismeri
a cpio(1) által felkínált összes
lehetőséget, de nincs is szüksége olyan
szokatlan paranccsoros összekapcsolásokra, mint a
cpio parancsnak.
A FreeBSD 5.3 vagy későbbi
változataiban a GNU tar és az
alapértelmezés szerinti bsdtar
egyaránt elérhető. A GNU változat a
gtar paranccsal hívható meg.
Az rdump parancshoz hasonló
felírásban képes kezelni a távoli
eszközöket. Tehát így tudjuk
használni a tar parancsot a
komodo nevű Sun
számítógép Exabíte szalagos
meghajtójának
elérésére:
#/usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1
Ugyanez eltérhető a bsdtar
használatával is, amikor az rsh
programmal összekapcsolva küldünk át a
távoli szalagos egységre.
#tar cf - . | rsh hálózati-név dd of=szalagos-eszköz obs=20b
Ha a hálózaton keresztül mentés
során fontos számunkra a biztonság, akkor
az rsh parancs helyett az
ssh parancsot használjuk.
A cpio(1) eredetileg a UNIX(R) szalagos programjai
és szalagos egységei között
közvetített. A cpio parancs
(többek közt) képes a byte-ok
sorrendjének felcserélésére,
több különböző archívum
formátuma szerint írni és adatokat
közvetíteni más programok felé. Ez
utóbbi lehetősége miatt a
cpio kíválóan alkalmas a
telepítőeszközök számára. A
cpio nem képes bejárni a
könyvtárszerkezetet, és az
állományok listáját a
szabványos bemeneten keresztül kell megadni
neki.
A cpio nem támogatja a
biztonsági mentés
átküldését a hálózaton.
Programok összekapcsolásával és az
rsh használatával tudunk
adatokat küldeni távoli szalagos
meghajtókra.
#for f in könyvtár_lista; dofind $f >> mentési.listadone#cpio -v -o --format=newc < backup.list | ssh felhasználó@gép "cat > mentőeszköz"
Ahol a könyvtár_lista
a menteni kívánt könyvtárak
listája, a
felhasználó@gép
a mentést végző gép
felhasználójának és
hálózati nevének együttese, valamint a
mentőeszköz, ahova a
mentés kerül (például
/dev/nsa0).
A pax(1) az IEEE/POSIX(R) válasza a
tar és cpio
programokra. Az évek során a
tar és a cpio
különböző változatai egy kissé
inkompatibilissé váltak. Ezért a
szabványosításuk kiharcolása helyett
inkább a POSIX(R) létrehozott egy új
archiváló segédprogramot. A
pax megpróbálja írni
és olvasni a cpio és
tar formátumok legtöbb
változatát, valamint emellett további
saját formátumokat is kezel. A
parancskészlete inkább a cpio
parancséra emlékeztet, mintsem a
tar parancséra.
Az Amanda (Advanced Maryland Network Disk Archiver) egy kliens-szerver alapú mentési rendszer, nem pedig egy önálló program. Az Amanda szerver menti tetszőleges számú számítógép adatát egyetlen szalagra, melyek az Amanda klienst futtatják és hálózaton keresztül hozzá csatlakoznak. A nagy mennyiségű és nagy kapacitású lemezekkel rendelkező rendszerekben közvetlenül a mentéshez szükséges idő nem áll rendelkezésre a feladat elvégzéséhez. Az Amanda viszont képes megoldani ezt a problémát. Az Amanda képes egy "saját lemez" használatával egyszerre több állományrendszerről is biztonsági mentést készíteni. Az Amanda "archívumkészleteket" hoz létre: az Amanda konfigurációs állományában megadott állományrendszerekről készít teljes mentést egy adott idő alatt egy adott mennyiségű szalagra. Az "archívumkészlet" ezenkívül még tartalmaz egy napi inkrementális (vagy különbözeti) mentést is minden egyes állományrendszerről. A sérült állományrendszerek visszaállításához mindig a legújabb teljes biztonsági mentésre és a hozzá tartozó inkrementális mentésekre van szükségünk.
A konfigurációs állomány segítségével precíz irányítást gyakorolhatunk a létrehozott mentések és az Amanda által keltett hálózati forgalom felett. Az Amanda a fentiek közül bármelyik programmal képes az adatokat szalagra rögzíteni. Az Amanda portként vagy csomagként is elérhető, alapértelmezés szerint nem települ.
A "Ne csináljunk semmit" nem egy újabb számítógépes program, hanem egy igen gyakran alkalmazott mentési stratégia. Nem kell beruházni. Nem kell semmilyen biztonsági mentési rendet követni. Egyszerűen semmit se csinálunk. Ha véletlenül valami történne az adatainkkal, akkor csak mosolyogjunk és törődjünk bele!
Amennyiben az időnk és adataink keveset vagy éppen semmit se érnek, akkor a "Ne csináljunk semmit" az elérhető legjobb biztonsági mentési megoldás számítógépünk számára. De legyünk óvatosak, mert a UNIX(R) egy igen hasznos eszköz, és fél éven belül könnyen úgy találhatjuk magunkat, hogy mégis csak vannak értékes adataink.
A "Ne csináljunk semmit"
tökéletesen megfelelő mentési
módszer a /usr/obj és a
hozzá hasonló módon a
számítógépen automatikusan
generált könyvtárak és
állományok esetében. Ugyanilyen
példa lehetne a kézikönyv HTML vagy
PostScript(R) változata. Ezek a formátumok ugyanis
az SGML források alapján keletkeznek, így a
HTML vagy PostScript(R) állományok mentése
nem életbevágó. Az SGML
állományokat viszont már annál
inkább mentsük!
dump(8) Pont. Elizabeth D. Zwicky
komolyan letesztelte az itt felsorolt összes programot. A
UNIX(R) állományrendszerek
jellegzetességeinek és rajtuk az összes
adatunk megőrzésének egyértelműen
a dump felel meg a legjobban. Elizabeth a
minden egyes program tesztjéhez olyan
állományrendszereket hozott létre, amelyek
rengeteg különféle szokatlan helyzetet
tartalmaztak (valamint néhány nem annyira
szokatlant). Az érintett jellegzetességek: lyukas
állományok, lyukas állományok
és egy halom nulla, állományok
érdekes karakterekkel a nevükben, olvashatatlan
és írhatatlan állományok,
eszközök, a mentés közben
méretüket változtató
állományok, a mentés közben
keletkező és megszűnő
állományok és még sok minden
más. Az eredményeit a LISA V-ben jelentette meg
1991 októberében. Lásd A
biztonsági mentéshez és
archiváláshoz használt programok tesztje
(angolul).
Csupán négy lépést kell megtennünk az esetleges katasztrófák bekövetkezésének esetére.
Először is két példányban
nyomtassuk ki az egyes lemezek
lemezcímkéjét (például a
bsdlabel da0 | lpr paranccsal) valamint az
állományrendszerek
táblázatát (az
/etc/fstab állományt)
és az összes rendszerindításkor
megjelenő üzenetet.
A második lépésben
készítenünk kell egy
"élő" rendszerrel rendelkező
CD-lemezt. Ezen a lemezen megtalálható minden,
ami el tudunk indítani egy
helyreállításhoz elegendő rendszert.
Ekkor a felhasználó futtatni tudja
például a dump(8), restore(8),
fdisk(8), bsdlabel(8), newfs(8), mount(8)
és a többi segédprogramot. Ez az image a
FreeBSD/i386 8.1-RELEASE kiadáshoz
az ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-i386-livefs.iso
címről tölthető le.
A harmadik lépésben igyekezzünk minél gyakrabban szalagra menteni. Mindig gondoljuk arra, hogy a legutolsó mentés óta létrehozott változatásaink teljesen el fognak veszni. A mentéseket tartalmazó szalagokat tegyük írásvédetté.
A negyedik lépésben ellenőrizzük a
a második lépésben
készített helyreállító
lemezünket és a biztonsági
mentéseket tartalmazó szalagokat.
Jegyezzük le az eljárást. Ezeket a
jegyzeteket is rakjuk el rendszerindító
lemezzel, a kinyomtatott adatokkal és a
mentéseket tartalmazó szalagokkal együtt.
Ezek a jegyzetek megvédenek minket attól, hogy a
helyreállítás közbeni
kétségbeesésünkben nehogy
véletlenül tönkretegyük a
biztonsági mentéseinket. (Hogy miként
is? Például ha a tar xvf
/dev/sa0 parancs helyett izgalmunkban a
tar cvf /dev/sa0 parancsot
gépeljük be, akkor azzal felülírjuk a
biztonsági mentéseinket).
A fokozott biztonság kedvéért minden alkalommal készítsünk rendszerindító lemezt és legalább két mentést. Az egyiket valamilyen távoli helyen tároljuk. Ez a távoli hely NE ugyanannak az épületnek az alagsora legyen! Számos cég alaposan megtanulta ezt a szabályt a Világkereskedelmi központ tragédiája kapcsán. Ez a távoli hely számítógépeinkből és merevlemezes meghajtóinkól is fizikailag jól elkülöníthető, jelentős távolságban legyen.
Az alapvető kérdés: a hardver túlélte? Ha rendszeresen készítettünk biztonsági mentéseket, akkor a szoftverek miatt egyáltalán nem kell aggódnunk.
Ha a hardver megsérült, akkor a számítógép használatának újból megkezdése előtt javasolt cserélni a meghibásodott alkatrészeket.
Ha a hardverrel minden rendben találtunk, akkor
helyzezzük be a helyreállításhoz
használatos "élő" rendszert
tartalmazó lemezt a CD-meghajtóba, és
indítsuk el vele a
számítógépet. Ezután
nemsokára a telepítési menü jelenik
meg. Itt a megfelelő ország után a
("Helyreállítás CD/DVD/floppy
használatával, vagy parancssor
indítása"), majd a ("A
CD/DVD-n található élő rendszer
használata") menüpontokat válasszuk.
A restore és a többi
segédprogram a /mnt2/rescue
könyvtárban lesznek elérhetőek.
Egyenként állítsuk vissza az egyes állományrendszereket.
A mount paranccsal
próbáljuk meg csatlakoztatni az első
lemezünk rendszerindító
partícióját (például
mount /dev/da0a /mt). Ha a
lemezcímke megsérült, akkor
bsdlabel alkalmazásával
partícionáljuk újra a lemezt és
címkézzük meg a korábban
kinyomtatott címke adatainak megfelelően. A
newfs segítségével
újra hozzuk létre az
állományrendszereket.
Írható-olvasható módban
csatlakoztassuk újra a lemez
rendszerinító partícióját
(mount -u -o rw /mnt). A biztonság
mentést végző program és a
biztonsági mentést tartalmazó szalagok
használatával állítsuk helyre az
állományrendszer tartalmát
(például restore vrf
/dev/sa0). Válasszuk le az
állományrendszert (például
umount /mnt). Mindegyik sérült
állományrendszerre ismételjük a
folyamatot.
Ahogy működőképessé vált a rendszerünk, mentsük az adatainkat új szalagokra. Akármi is okozta a rendszer összeomlását vagy az adatvesztést, ismét lecsaphat. Ha most áldozunk erre még egy órát, akkor azzal a későbbiekben számos kellemetlenségtől óvhatjuk meg magunkat.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.