Cikk biztonsági mentési segédprogram billenő

A mentési nincs értelme azt mondani: ha a rendszergazda ezt nem érti, akkor az első hiba után vagy a feltört szerveren, vagy egyszerűen csak ha véletlenül törli értékes információk gondolni. Szeretném megosztani, de nem gazdag tapasztalatokkal rendelkeznek ezen a területen.

Backup rendszerek kitalált sok, de nem mindegyik egyformán hasznosak feltételeit rossz hozzáférés a szerverhez: helyreállítás program fér el egy bootolható cserélhető adathordozókon, és dolgozni vele, anélkül, hogy a rendszer telepítéséhez.

lerakó - hagyományos mentési program Unix-szerű operációs rendszer. Úgy tudja, tíz szint inkrementális guba, nyilván azokat a kazettára szalagok, bármilyen blokk eszközöket és fájlokat, csak a másik oldalán. Akkor vissza a szakasz egésze és az egyes fájlokat és könyvtárakat.

Úgy működik, közvetlenül a közüzemi blokk eszköz, amely tartalmaz egy fájlrendszert, és működteti facsomópontok (inode). Meg tudja másolni az adatokat mind a felbontás a készülék leszerelése és használni - szerelt. Inkrementális mentés segítségével inode módosítás ideje.

Az / etc / dumpdates információt tárol az időben minden szinten inkrementális mentés az egyes részekben. Mert az eszköz-specifikus információ úgy tűnik, csak létrehozása után nulla, és a lerakó frissül minden alkalommal visszaállítja a kiírási minden szinten.

Dump lehet másolatot készíteni az adatok on the fly, különböző tömörítési algoritmusok. Pontosan mi - jobban meg tudjunk birkózni a kézikönyv (férfi lerakó) az operációs rendszertől. Linux van: zlib bzlib és LZO. Zlib bzlib támogatást és tömörítési szint, illetve 9, különböző sebességgel billenő állítani. LZO gyorsabb. Egyidejű használata a tömörítés és a streamer akkor lehetséges, ha a szalagos meghajtó támogatja a változó hosszúságú blokkokat.

Visszaállítható billenő osztható térfogat - automatikusan, kitöltésével a fogadó készülék vagy a darab a megadott hosszúságú.

Példa lerakó: reset nulla billenő sűrített bzlib kompressziós könyvtárnak a hatodik szint, vágjuk térfogatra 700.000 on 1 KB blokkok (mindegyik fájl kerül egy CD vagy 6 fájlokat DVD), egy kötet automatikusan elemzi a előtag hozzá a gyökér- és / mnt / backup / 0 (at / mnt / backup szerelt nosuid külön partíció). Végén a rekord frissül az / etc / dumpdates.

billenő -0 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /

Munka a visszaállítás.

Visszaállítás dump restore parancsot hajt végre. Alaposan megértsék a paraméterei, már nem volt ideje. Azt javaslom kezdeni a tanulást kézikönyv (man helyreállítása) előtt be kell visszaállítani az adatokat! Megmondom, hogyan kell visszaállítani a könyvtárat a lerakó.

A fájl exportálásához listában jelölje ki a kívánt, és tegye meg a teljes elérési egy fájlba ír az aktuális könyvtárban.

helyreállítása -t -M -f / mnt / backup / 0 / kü- lönbözőképpen | \
grep '^ / var / www / Virtuals / mysite / www / data' | \
awk '„> List

Aztán helyreállt őket a lerakó az aktuális könyvtárban.

helyreállítása -x -M -f / mnt / backup / 0 / kü- lönbözőképpen -X lista

mentési stratégia.

Azt választotta a stratégia a szerveren:
  • Egyszer egy negyed vagy évente egyszer (ízlés szerint, és igények) visszaállításához a nulla szint lerakó. Ez a legnagyobb, és tartalmazza az összes információt a szakaszt. Ezért, annak érdekében, hogy ne szenvedjen a több gigabyte guba, akkor érdemes csinálni, hogy nem gyakran.
  • Számos gyakrabban (havonta egyszer) visszaállító kiírja az első szinten. És ez így nem esik egybe időben a nulla lerakó, hogy 15-én. Ez tartalmazni fogja az összes felgyülemlett változásokat, és növekedni fog idővel, amíg a következő zéró dump. Ez is egy hatalmas lerakó (attól függően, hogy a változás mértéke adatok a lemezen).
  • Hetente egyszer visszaáll szedni a második szintre. Gyűlik össze egy lerakó változások ezen a héten, a felhalmozott magasabb guba. Meg kell rendszeresen másolni távoli tároló.
  • A többi napon a héten - fokozatosan - a magasabb szintű 3, 4, 5, 6, 7 és 8 Ezek a kis és mindegyik tartalmaz egy változást csak egy nap. Másolja őket, akár nem - a kérdés az adatok biztonságát. Jobb lenne másolni - vagy értelmében ezek a lerakók kicsi lesz.
  • Az operatív kézi visszaállítás fogja hagyni a 9. szinten. Ez akkor lehet hasznos, ha a „váratlan” rendszergazda hibát, amikor szükség lesz, hogy visszaállítsa a régi config változat vagy véletlenül törölt fájlok, valamint annak szükségességét, hogy ők nem az éjszaka backup, de mint te állapotú.

Visszaállítása lerakóhelyek jobban ki éjjel, amikor a szerver nincs betöltve, és nem foglalja el másik ütemezett feladatokat. Ideális időszak 3-5 és reggel. Választhat bármilyen más időpontban, hogy meghatározza a gyakorlatban során az off-peak.

Automatizálási és optimalizálása a lerakó.

A tervezett kezdési szoktam cron (valószínű Unix, hogy válasszon egy másik ütemező). Feladatok kell futtatni root-és nevét. Ezért ezeket lehet beírni: vagy root-ohm segédprogram crontab. vagy írjon az / etc / crontab.

Példa - fragmens / etc / crontab:

Május 5 * 6 * root billenő -8 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Május 5 * 5 * root billenő -7 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Május 5 * 4 * root billenő -6 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Május 5 * 3 * root billenő -5 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Május 5 * 2 * root billenő -4 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Május 5 * 1 gyökér billenő -3 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Május 5 * 7 * root billenő -2 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
Április 5. 15 * * root billenő -1 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /
35 január 3 1,4,7,10 * root billenő -0 -f / mnt / backup / 0 / gyökér- -uMB 700000 -j6 /

És így azt meg kell ismételni minden partíció számára, másolni. Ez kényelmetlen, nehézkes, és valószínű, hogy a folyamat a másolás időbeli átfedésben van egymással, és így csak a lassú. Itt az ideje, hogy írjon valamit a kényelem és az automatizálás.

# Ügyeljen arra, hogy a tervezési paraméterek - szám 0-tól 9 elviheti és pogumanee módszer.
ha # 91; _ $ 1. = _0 # 93; # 91; _ $ 1. _1 = # 93; # 91; _ $ 1. _2 = # 93; \
# 91; _ $ 1. = _3 # 93; # 91; _ $ 1. = _4 # 93; # 91; _ $ 1. = _5 # 93; \
# 91; _ $ 1. = _6 # 93; # 91; _ $ 1. = _7 # 93; # 91; _ $ 1. = _8 # 93; \
# 91; _ $ 1. = _9 # 93; ;
majd
echo „A rendszer biztonsági mentést: érvénytelen érv!”
echo „Használat: dump.sh "
exit 1;
fi

echo "Start rendszer mentés. Level $ DL".

# Old guba, a jelenlegi szint felett, akkor távolítsa el, amelyek nem kerül sor.
Az N `seq $ 9`
csinál
rm -f / mnt / backup / $ / *
csinált

# Visszaállítja az egyes részekben.
billenő -f / mnt / backup / $ / gyökér- - $ UMB 700000 -j6 /
billenő -f / mnt / backup / $ / házilag - $ UMB 700000 -j6 / home
billenő -f / mnt / backup / $ / kü- lönbözőképpen - $ UMB 700000 -j2 / var

echo „Rendszer mentés befejeződött.”
exit 0

Ezután indítsa mentés az alábbiak szerint végezzük:

/ Gyökér / bin / dump.sh 0

Mivel lerakó működik inode, semmint a fájl nevét, akkor meg kell, hogy adja át annak érdekében, hogy elkerüljék a csapat inode lista, amit nem szabad tenni egy szeméttelep. Ez történik az -e vagy -E. Az első kulcs határozza meg a inode lista közvetlenül a parancssorból, és a második kulcs nevét tartalmazó szöveges fájl inode lista (soronként). Ha az inode tartozik egy könyvtár, akkor a lerakó nem fog a könyvtár maga és az összes fedő fájlokat és könyvtárakat.

inode szám egy fájl vagy könyvtár lehet hozzáférni a parancsot stat:

stat -c% i / etc / dumpdates

Így lehet, hogy egy listát fájlleírójú, és add hozzá a húr dump. de valahogy ez nem könnyű, és nem rugalmas. Például, hogy jobb lenne, ha a null lerakó tartalmazza az összes fájlokat és könyvtárakat, de a magasabb regiszterben kivételek. Ez csak akkor szükséges, hogy automatizálják a folyamatot.

A végén, én egy ilyen program Perl. Azt is hiányzik az a képesség, hogy működjön együtt minták fájlnevek (joker).

use strict;
A config. INI. Reader;

my $ config = '/etc/dumper.conf';

default # legyen a 9. szinten.
my $ level = 9;
# Credit alapértelmezett beállításokat.
én% config = # 40;
'Ürítő-dir' => '/ mnt / vissza / mentés / rendszer'.
# 41; ;
én # 40; $ Fd. $ Az ini # 41; ;

# Az egyetlen tervezési paraméterek - számként kell megadni.
ha # 40; $ argv # 91; 0 # 93; =

# Elemezni a fájl listát, kettősponttal elválasztva, és hozzon létre számukra inode lista.
sub get_inode_list # 40; $)
# 123;
én # 40; $ Fájl. @list # 41; ;

A $ file # 40; osztott ':'. $ _ # 91; 0 # 93; # 41;
# 123;
következő hacsak # 40; - e $ file # 41; ;
nyomja @list. # 40; stat # 40; $ file # 41; # 41; # 91; 1 # 93; ;
# 125;

visszatérés @list;
# 125;

# Írásához értelmező config, én választottam a ini formátum, és állítsa be a megfelelő modult.
$ Ini = Config. INI. Reader -> read_file # 40; $ CONFIG # 41; ;

# A „*” jelzi az általános paramétereket.
ha # 40;. létezik $ ini -> # 123; '*' # 125; # 41;
# 123;
print STDERR "*** Config hiba \ n!";
exit 1;
# 125;

# Felülírni az alapértelmezett beállításokat a config.
% Config = # 40; % Config. % # 123; $ Ini -> # 123; '*' # 125; # 125; # 41; ;

ha # 40;. létezik $ config # 123; 'Jobs' # 125; # 41;
# 123;
print STDERR "*** Jób lista nem található \ n!";
exit 1;
# 125;

print "*** megkeresett lerakó szint '$ szint' \ n".;
print "*** Törölje a régi mentést:". csatlakozik # 40; ''. # 40; $ Szint. 9 # 41; # 41;. "\ N";

én $ n # 40; $ Szint. 9 # 41;
# 123;
én @files = glob # 40; csatlakozik # 40; '/'. $ config # 123; 'Dump-dir' # 125;. $ N. '*' # 41; # 41; ;
következő hacsak # 40; @files # 41; ;
én @cmd = # 40; 'Rm'. '-f'. @files # 41; ;
print csatlakozzon # 40; ''. @cmd # 41;. "\ N";
rendszer @cmd;
# 125;

print "*** Rendszer mentés megkezdődött \ n."

# A paraméter „munkahelyek Felhasználó” neveit „feladatok”.
# Minden probléma a konfigurációs fájlban kell létrehozni, az azonos nevű paraméterei közül.
L_jobs. én $ munkát # 40; osztott '. $ config # 123; 'Jobs' # 125; # 41;
# 123;
hacsak # 40; létezik $ ini -> # 123; $ munkát # 125; létezik $ ini -> # 123; $ munkát # 125; # 123; 'FS' # 125; létezik $ ini -> # 123; $ munkát # 125; # 123; 'Dump' # 125; # 41;
# 123;
print STDERR "*** Munka '$ munkát': nincs megfelelően konfigurálva \ n!";
következő L_jobs;
# 125;

hacsak # 40; - e $ ini -> # 123; $ munkát # 125; # 123; 'FS' # 125; # 41;
# 123;
print STDERR "*** Munka '$ munkát': rossz fs rendelni \ n!";
következő L_jobs;
# 125;

én @args = # 40; "- $". '-f'. csatlakozik # 40; '/'. $ config # 123; 'Dump-dir' # 125;. $ Szint. $ Ini -> # 123; $ munkát # 125; # 123; 'Dump' # 125; # 41; # 41; ;

ha # 40; létezik $ ini -> # 123; $ munkát # 125; # 123; 'Params' # 125; # 41;
# 123;
nyomja @args. osztott '. $ Ini -> # 123; $ munkát # 125; # 123; 'Params' # 125; ;
# 125;

Paraméter típus „nettó #” - az egyes lerakó szinten. Ez tartalmaz egy listát a kivételek a mentés.
ha # 40; létezik $ ini -> # 123; $ munkát # 125; # 123; „Kit $ szint” # 125; # 41;
# 123;
én @inodes = get_inode_list # 40; $ Ini -> # 123; $ munkát # 125; # 123; „Kit $ szint” # 125; # 41; ;

ha # 40; @inodes! = 0 # 41;
# 123;
nyomja @args. '-e'. csatlakozik # 40; ''. @inodes # 41; ;
# 125;
# 125;

én @cmd = # 40; 'Dump'. @args. $ Ini -> # 123; $ munkát # 125; # 123; 'FS' # 125; # 41; ;
print csatlakozzon # 40; ''. @cmd # 41;. "\ N";
rendszer @cmd;
# 125;

print "*** Rendszer mentés teljes \ n."
exit 0;

Ez könnyű beállítani:

  • Csomagolja ki és menj a kapott könyvtár
  • ./Makefile.PL
  • make install

# 91; * # 93;
billenő-dir = / mnt / backup
munkahelyek = root otthon var

# 91; otthon # 93;
fs = / home
billenő = házilag
params = -uMB 700000 -j6


# 91; gyökér # 93;
fs = /
billenő = gyökér-
params = -uMB 700000 -j6

exc0 =
K1 = / tmp
exc2 = / tmp
exc3 = / tmp: / root / tmp; gyökér-és nem kell helyezni egy biztonsági kísérletek
exc4 = / tmp: / root / tmp
exc5 = / tmp: / root / tmp
exc6 = / tmp: / root / tmp
exc7 = / tmp: / root / tmp
exc8 = / tmp: / root / tmp
exc9 = / tmp: / root / tmp

# 91; var # 93;
fs = / var
billenő = kü- lönbözőképpen
params = -uMB 700000 -j2

exc0 =
K1 = / var / spool / postfix; mail mentés nem szükséges
exc2 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adat; adatbázisok és egyéb dinamikus adatokat
exc3 = / var / spool / postfix: / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log: / var / www / Virtuals / naplók; Különböző rönk is
exc4 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log / var / www / Virtuals / rönk
exc5 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log / var / www / Virtuals / rönk
exc6 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log / var / www / Virtuals / rönk
exc7 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log / var / www / Virtuals / rönk
exc8 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log / var / www / Virtuals / rönk
exc9 = / var / spool / postfix / var / lib / mysql: / var / named / chroot / var / named / adatok: / var / log / var / www / Virtuals / rönk

Dömper így hangzik:

/ Gyökér / bin / dumper.pl 0

Kérdések programozás Perl lehet állítani a vonatkozó részben a fórum.

Kapcsolódó cikkek