Egyszerű backup szkript (a freebsd példa) - # megjegyzés unix

Helyfoglalás oszlik kétféle - az, hogy növelje a megbízhatóságot RAID tömbök és redundáns mentés. Megjegyzem, hogy mindkét megközelítés kell alkalmazni a kritikus szerverek (a legjobb esetben - bármely, a szerver). RAID, például 1 - tükör menteni az egyik meghibásodása a HDD, ha a fájl szerver számos HDD, kívánatos használni, vagy RAID 10 vagy RAID 6 (a részleteket a wikipedia). Ie A rövid idő alatt sikerült kivonat a sérült HDD. Beilleszt egy új szinkronizáló és folytatja a munkát, a jelenléte HotSwap kosarak ebben az esetben nagyon kívánatos. Mi nem menti RAID. így az emberi tényező. Például és törölt fájlok, felébredt, és úgy eltűnt, vagy sérült adatok, stb Ez megköveteli a rendszer redundáns biztonsági másolatot a fontos információkat a kiszolgálón többnyire konfigurációs fájlok, MySQL adatbázis. Ennek eredményeként már legalább a HDD 3, két collect RAID1 (Mirror) és egy külön HDD - a mentést a fontos fájlokat. Természetesen ez nem feltétlenül, ez csak az én szempontból, véleményem szerint.
A szkript mentés backup.sh nem bonyolult, az alábbiak szerint:

DIR = / mnt / backup
DATA = `date„+% Y% m.'`

cd $ DIR
mysqldump -u root --password = '*****' -l --all-adatbázisok | gzip> databases- $ DATA.sql.gz
tar -czf named- $ data.tar.gz / var / named
tar -czf log $ data.tar.gz / var / log
tar -czf stb- $ data.tar.gz / etc
tar -czf locetc- $ data.tar.gz / usr / local / etc
tar -czf www- $ data.tar.gz / usr / local / www

megtalálni $ DIR / * -mtime 7 -exec rm <> \;

Minden hosszú mysqldump parancsot és e-mail kell megírni egy sorban.
DIR - könyvtár mentést.
DATA - az aktuális dátumot a következő formátumban GODMESYATSDEN.
Következő a script megy a könyvtárba a backup (cd $ DIR) és végrehajt egy parancssorozatot arhiviruyuschii összes kulcs adatbázis mysqldump --all-databass. -l - lochit bázis idejére a kiírási, a legfontosabb --password = „*****” - helyett csillagok azt a jelszót, mivel ő a tiszta, a megfelelő file backup.sh do 700 azaz olvasás, szerkesztés és kivitelezés - csak a root felhasználó. Ezután azt tömöríteni a kapott lerakó gzip (jelen kell lennie a rendszerben), és átirányítja egy fájlba databases- $ DATA.sql.gz. Ezután jönnek a tar -czf csapat. amely megteremti a szükséges fájlokat mappák (akkor is, hogy a saját). Erre a tényre a script, hogy végez mentést véget ér, a következő részben a kényelem vagy inkább végrehajtásának nyomon követését archiválás. Ie Sikeres lezárása után a forgatókönyvet, nézzük, hogy van-fájlokat egy könyvtárban, akinek a neve szerepel az aktuális dátumot, ha az ilyen fájl - írja őket a fájlt. amely beolvassa a szervezetben az e-mail, és küldje el a szappant rendszergazda, akkor törölje az ideiglenes fájl jelenlegi, azaz a Most ez a rész:

Nos, az utolsó parancsot:

megtalálni $ DIR / * -mtime 7 -exec rm <> \;

azaz tárolására archív fájlokat a / mnt / backup - 7 nap.

Hogy hát minden nap csak 00:05, adjunk hozzá egy munkát a crontab -e #crontab.

# Backup
5 0 * * * /root/script/backup.sh

FIGYELEM! #crontab -e - ez a root felhasználó feladatok fájlt. Gyakran láthatjuk, hogy a szálak mondani valami ilyesmit: „add parancsokat a crontab, és ezek nem teljesülnek” vagy „adjunk a forgatókönyvet a crontab, és nem hajtják végre, bár a konzol ./backup.sh elfut.” A helyzet az, hogy elő kell írni #crontab -e környezeti változók, azaz a adjuk hozzá a következő sorokat a fájl tetején:

Ezt követően a parancsot egy script felírható rövidített formában. Ha ezek a vonalak nem, akkor a csapat kell írni a teljes, azaz nem mysqldump. és / usr / local / bin / mysqldump, ami nem túl kényelmes. Hozzáteszem, hogy crontab sor MAILTO =, azaz az összes hibát a program futása a koronát, leejtettem a szappant.


Ez minden.
előkészített
Ohalnikov Oleg aka H @ wk!