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; do
find $f >> mentési.lista
done
#
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>.