Automatické zálohy servera

February 15, 2011

Síce som si spravil automatické zálohy servera dosť amatérsky, podelím sa o to s vami. Celkom som mal problém doteraz so zálohami na serveri alebo aj na hostingu. Kedysi som mal ešte hosting na elbiahostingu (ktorý odporúčam) a jedna databáza sa poškodila. Keďže som tam hosťoval už pár mesiacov a bez problémov, nechcelo sa mi rozbiť zálohy s vtedy mojim pomalým netom, keďže db mala niekoľko 100 mega ak nie GB. Spoliehal som sa tiež na to, že elbiahosting budú mať zálohy. Nakoniec sa niečo pokazilo, ja som mal mesiac starú zálohu a tak som napísal na podporu. Bohužiaľ mali vtedy ešte systém len kompletných záloh, ktoré sa dali obnoviť len všetky a nebolo možné z toho vytiahnuť len jednu. Takže na server putovala mesiac stará záloha a pár tisíc príspevkov bolo fuč. Neskôr som sa stretol ešte aj na dedikáči s problémom so zálohovaním, keďže pár gigabajtov bol problém stále sťahovať a ani sa to nikomu nechcelo každý deň 3 roky v kuse. Po pár výpadkoch a problémoch s db sme sa konečne umúdrili a spravili automatické zálohy aj databáz aj súborov. To množstvo dát sa dá automaticky zálohovalo na vp server každý deň. Čo je myslím výborne riešenie, teda ak nepadne na obe serverovne asteroid alebo sa začne tvoriť chyba pri archivovaní záloh. Tak keďže som si prednedávnom zaobstaral vpsko, v podstate dosť lamácky a rýchlo som si spravil aj automatické zálohy. Viem, že na zálohu súborov použil spoluadmin toho servera webmin. Tak som ho nainštaloval a hneď sa na to aj pozrel. Webmin má na to priamo funkciu v System -> Filesystem backup. To som len aktivoval, moc tam toho nastavovania nebolo.

Takže filesystem mi ukladá, každý týždeň do /var/wwwbackup , o 4:00 ráno v stredu. Keďže o tomto čase by mal byť server najmenej vyťažený a štvrtok väčšinou opúšťam Brno.

00 4 * * 3 /etc/webmin/fsdump/backup.pl 22222222222

S funkčnými zálohami filesystému mi už chýbajú len databázy. Na to je celkom krátky kód, mne však v crone nefungoval tak som si na to vytvoril súbor v /root/mysqlbackup

mysqldump -u user -pheslo –all-databases | gzip > /var/www/backups/database_date ‘+%m-%d-%Y’.sql.gz

ten spúšťam cronom hodinu pred zálohou file systému a ukladám ho rovno do /var/www, aby som teda nemusel sťahovať databázy a file systém osobitne. Hodinu po zálohovaných stránkach ešte zmažem obsah /var/www/backup

rm -R /var/www/backups
mkdir /var/www/backups

Ešte by som mal asi po vykonanej zálohe nastaviť vlastníka zložky /var/wwwbackup ftp usera, nech to môžem po stiahnutí zmazať. Keď sa nad tým teraz zamýšľam, príde mi to celkom nepraktické, riešiť to cez webmin, keď sa to dá spraviť jeden súbor a tam nastaviť celú zálohu db, súborov aj zmazanie záloh databáz (nech sa staré db nearchivujú do kompletnej zálohy, keďže 10 GB priestoru nie je moc) a nie riešiť to takto na 3 krát ešte aj externe. Ale kým to funguje a neirituje ma to moc, asi to tak chvíľu nechám.


Written by Lucas03 , who uses this as diary. Contact at admin[a]lucas03.com