Ha már van egy kész rendszerünk, amelyen fontos adatokat is tárolunk, akkor célszerű erről néha backupot is készítenünk.
Igen persze erre van a RAID, ja nem. A raid nem backup készítésére való! A RAID futás idejű tükrözést tesz lehetővé, ezzel magas rendelkezésre állást és megbízhatóságot garantálva. Backup alatt időszakos állapot/adatmentést értünk, azaz napi/heti/havi bontásokban történő szinkronizálást az egyes adattárolók között.
Ez azért fontos, mert ha pl. Gizi néni fizetése késik hónap elején és közben lefő a kávé akkor indokolatlanul is elgurulhat a gyógyszere és elkezdhet beletörölni a céges hálózati meghajtón található adatállományokba, aminek lássuk be RAID esetén elég kemény következménye lehet... Viszont ha a RAID mellett van egy időszakosan bontott mentési mechanizmus is, ami minden nap/héten/hónapban egy alkalommal lefut ezzel kimentve az aktuális állapotokat, akkor jó eséllyel elég lessz kirúgni Gizit, és nem kell bezárnunk a céget. :)
Még jobb ha az egész automatikusan, csendben a háttérben zajlik. Erre számtalan megoldás létezik, én az RSYNC -t szoktam használni, mert egyszerű, fasza és működik!
Hogyan néz ki ez a gyakorlatban?
- Hozzunk létre 3 db fájlt, egy olyan területen ahol csak a root garázdákodhat, lehet mondjuk a /root/Scripts/Backup mappában is, az alábbi(de tetszőleges) elnevezésekkel:
touch daily.sh weekly.sh monthly.sh - Az RSYNC -nek meg kell adnunk a forrást amit szinkronizáljon, valamint a célt ahova szinkronizálja. További kapcsolókkal kis felruházhatjuk, ilyen pl az "--exclude" amivel kizárhatunk bizonyos mappákat a szinkronizációból, vagy a "--delete" kapcsoló amivel megmondhatjuk hogy töröld a forrásban meg nem található fájlokat a cél-állomásról. A fájlok tartalma valami hasonló legyen(szerkesztéshez a nano -t ajánlom):
#! /bin/bash #daily rsync -avz --exclude 'EztNeSzinkronizadMappa1' --exclude 'EztNeSzinkronizadMappa2' --delete /mnt/DataStorage/UsersHome /mnt/BackupStorage/daily #weekly #rsync -avz --exclude 'EztNeSzinkronizadMappa1' --exclude 'EztNeSzinkronizadMappa2' --delete /mnt/DataStorage/UsersHome /mnt/BackupStorage/weekly #monthly #rsync -avz --exclude 'EztNeSzinkronizadMappa1' --exclude 'EztNeSzinkronizadMappa2' --delete /mnt/DataStorage/UsersHome /mnt/BackupStorage/monthly - Ha megvagyunk, akkor adjunk futási jogot az elkészült scripteknek:
chmod a+x daily.sh weekly.sh monthly.sh - Most hogy ezzel is megvagyunk, teszteljük le egyessével a scripteket, megbizonyosodva arról, hogy működnek. Ezért futtassuk le őket egyenként és nézzük meg hogy a célállomáson megfelelően szinkronizálásra kerültek-e a mappák. Szükség esetén koorigáljuk a scriptet, persze hozzáadhatunk újabb sorokat is, ha máshonnan is szeretnénk szinkronizálni.
- Ha ezzel is megvagyunk és minden fut faszán, akkor nem maradt más hátra mint felrakni a végére a pontot, az automatizációt. Ezt úgy tudjuk megtenni, hogy rootként belépve kiadjuk a
crontab -eparancsot, aminek eremdényeképpen egy nano -t kapunk. Itt kell meghívnunk a létrehozott scripteke az alábbi módon:
0 4 * * * /root/Scripts/Backup/daily.sh
0 5 * * 5 /root/Scripts/Backup/weekly.sh
0 6 1 * * /root/Scripts/Backup/monthly.sh
- A mentést követően készen is vagyunk. A fenti beállítások értelmében, minden nap reggel 4 órakor, minden pénteken reggel 5 órakor és minden hónap első napján reggel 6 órakor készül egy biztonsági mentés a célmeghajtóra.