Script de backup simplu (pentru exemplul freebsd) - # note despre unix

Redundanța va fi împărțită în două tipuri: îmbunătățirea fiabilității cu matrice RAID și redundanță redundantă. Observ că ambele abordări ar trebui să fie aplicate serverelor IMPORTANTE (în cel mai bun caz - pe orice servere). RAID, de exemplu 1 - o oglindă, va salva de la defectarea unuia dintre HDD, dacă fișierul este un server cu o cantitate mare de HDD, atunci este mai bine să utilizați fie RAID 10, fie RAID 6 (pentru detalii pe Wikipedia). Ie pentru o perioadă scurtă de timp, scoatem HDD-ul deteriorat. introduceți o nouă sincronizare și continuați să lucrați, prezența coșurilor HotSwap este foarte de dorit. Ce nu salvează RAID. deci este de la factorul uman. De exemplu, ați luat și ați șters fișierul, l-ați dat seama și datele au fost pierdute sau deteriorate etc. Pentru a face acest lucru, aveți nevoie de un sistem de rezervare excesivă a informațiilor importante, pe server sunt în esență fișiere de configurare, baze de date MySQL. Ca rezultat, avem cel puțin 3 HDD-uri, dintre cele două colectăm RAID1 (oglindă) și un HDD separat - în cadrul copiilor de siguranță ale fișierelor importante. Desigur, acest lucru nu este necesar, acesta este doar punctul meu de vedere, părerea mea.






Scriptul de rezervă backup.sh în sine nu este complex, arată astfel:

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

cd $ DIR
mysqldump -u root --password = '*****' -l - toate bazele de date gzip> baze de date- $ DATA.sql.gz
tar -csf numit- $ DATA.tar.gz / var / named
log-ul tar-cf- $ DATA.tar.gz / var / log
tar -czf etc- $ DATA.tar.gz / etc
tar -czf locetc- $ DATA.tar.gz / usr / local / etc
tar -czf www- $ DATA.tar.gz / usr / local / www

găsiți $ DIR / * -mtime +7 -exec rm <> \;

Toate comenzile long mysqldump și mail trebuie să fie scrise într-o singură linie.






DIR - director cu copii de rezervă.
DATE - data curentă în formatul ANI-LUNI.
Mai departe, pe script vom merge la directorul cu backup (cd $ DIR) și vom executa secvențial comenzile care arhivează toate bazele de date mysqldump tasta "all-databass". -l - blochează baza de date pentru timpul de stocare, tasta este --password = '*****' - în loc de asteriscuri specificăm parola; este clar, drepturile la fișierul backup.sh fac 700. adică citirea, editarea și execuția - numai rădăcină pentru utilizator. Mai mult, comprimăm gzipul dump recepționat (ar trebui să fie prezent în sistem) și redirecționăm într-o bază de date de fișiere- $ DATA.sql.gz. Apoi treceți comenzile tar -czf. care creează arhivele directoarelor dorite (puteți include oricare dintre propriile dvs.). Acesta este, de fapt, scriptul în sine, care efectuează backup-ul se încheie, următoarea secțiune pentru comoditate sau mai exact pentru a controla executarea de arhivare. Ie după un script executat cu succes, vedeți dacă fișierele au apărut în directorul al cărui nume conține data curentă, dacă există astfel de fișiere, scrieți-le în fișierul curent. care este citit în corpul literei și trimis la administratorul de săpun, apoi șterge actualul fișier temporar, adică aici este această secțiune:

Ultima comandă:

găsiți $ DIR / * -mtime +7 -exec rm <> \;

și anume stocăm fișierele de arhivă în / mnt / backup - 7 zile.

Pentru ca backup-ul să fie executat în fiecare zi la 00:05, adăugați lucrarea la crontab #crontab -e.

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

ATENȚIE! #crontab -e este fișierul sarcinilor de bază ale utilizatorului. Puteți vedea adesea subiecte care spun ceva de genul: "Eu adaug comenzi crontab și nu sunt executate" sau "Am adăugat scriptul la crontab, dar nu rulează, deși funcționează bine din consola ./backup.sh". Totul este că este necesar în # crontab -e să se înregistreze variabilele de mediu, adică. adăugați următoarele rânduri în partea de sus a fișierului:

După aceasta, comenzile din scripturi pot fi scrise în formă prescurtată. Dacă aceste linii nu sunt prezente, atunci comenzile ar trebui să fie scrise complet, de exemplu, nu mysqldump. și / usr / local / bin / mysqldump, ceea ce nu este în întregime convenabil. Adăugăm linia MAILTO = la crontab, adică toate erorile în execuția scenariului pe coroană, cad pe săpun.


Asta e tot.
Material pregătit
Oleg Okhalnikov aka H @ wk!







Trimiteți-le prietenilor: