Keďže som už niekoľko krát potreboval niečo zálohovať, tak že sa o to nebudem starať a nechcem zbytočne zháňať nejaký vhodný softvér, ktorý by bol pravdepodobne aj platený, alebo by som sa s ním musel zoznámiť, tak som si spravil malý a jednoduchý script, ktorý možno niekto využijete. Dlho som rozmýšľal, že aký typ zálohovania zvoliť a najlepšie bude asi rotovanie za posledný mesiac.
Automatické premazávanie TEMPu · Tipy a triky pre optimalizovanie PHP
Čiže si na C, D, ... (v mojom prípade to bude externý disk E) vytvoríme súbor zaloha.bat a vložíme tam tieto riadky:
echo off
echo %date:~11%-%date:~7,2%-%date:~3,2% %time:~0,2%:%time:~3,2%:%time:~6,2% > date.txt
del /f zaloha31.rar
ren zaloha30.rar zaloha31.rar
ren zaloha29.rar zaloha30.rar
ren zaloha28.rar zaloha29.rar
ren zaloha27.rar zaloha28.rar
ren zaloha26.rar zaloha27.rar
ren zaloha25.rar zaloha26.rar
ren zaloha24.rar zaloha25.rar
ren zaloha23.rar zaloha24.rar
ren zaloha22.rar zaloha23.rar
ren zaloha21.rar zaloha22.rar
ren zaloha20.rar zaloha21.rar
ren zaloha19.rar zaloha20.rar
ren zaloha18.rar zaloha19.rar
ren zaloha17.rar zaloha18.rar
ren zaloha16.rar zaloha17.rar
ren zaloha15.rar zaloha16.rar
ren zaloha14.rar zaloha15.rar
ren zaloha13.rar zaloha14.rar
ren zaloha12.rar zaloha13.rar
ren zaloha11.rar zaloha12.rar
ren zaloha10.rar zaloha11.rar
ren zaloha09.rar zaloha10.rar
ren zaloha08.rar zaloha09.rar
ren zaloha07.rar zaloha08.rar
ren zaloha06.rar zaloha07.rar
ren zaloha05.rar zaloha06.rar
ren zaloha04.rar zaloha05.rar
ren zaloha03.rar zaloha04.rar
ren zaloha02.rar zaloha03.rar
ren zaloha01.rar zaloha02.rar
ren zaloha.rar zaloha01.rar
rar a zaloha.rar c:\*CESTA* -t zaloha.rar
rar c -zdate.txt zaloha.rar
del date.txt
Za *CESTA* si zmeníme na cestu k adresáru, ktorý chceme zálohovať.
Windowsu chýba cron, čo je škoda, ale môžeme využiť Scheduled Tasks (Plánované úlohy) nájdete to v Štart > Nastavenia > Ovládací panel > Plánované úlohy. Medzi tým si do adresára kde máme náš bat súbor zaloha.bat nahráme hstart.exe (
sťiahnúť). Rotujúce zálohy budeme komprimovať trebárs cez rar, samozrejme je možné použiť akýkoľvek komprimovací program (najlepšie taký, ktorý dokáže komprimovať cez konzolu). RAR si môžete stiahnuť z http://www.win-rar.com, stiahnite WinRAR, nainštalujte a odtiaľ si prekopírujte len rar.exe tam kde máme zaloha.bat. Nastavíme si plánovač a spúšťať nebudeme zaloha.bat, ale C:\*CESTA*\hstart.exe /NOCONSOLE "zaloha.bat"
Tu sa dostávame opäť k hstart.exe, hstart.exe slúži na spracovanie trebárs takéhoto bat súboru bez toho aby sa nám otvorilo nejaké okienko a tým nás to otravovalo. Čiže spracuje požiadavku na pozadí a o ničom nevieme. Je možné že niekto bude mať problém s týmto riadkom v tom bat súbore:
echo %date:~11%-%date:~7,2%-%date:~3,2% %time:~0,2%:%time:~3,2%:%time:~6,2% > date.txt
V takom prípade použite tieto riadky:
echo off
del /f zaloha31.rar
ren zaloha30.rar zaloha31.rar
ren zaloha29.rar zaloha30.rar
ren zaloha28.rar zaloha29.rar
ren zaloha27.rar zaloha28.rar
ren zaloha26.rar zaloha27.rar
ren zaloha25.rar zaloha26.rar
ren zaloha24.rar zaloha25.rar
ren zaloha23.rar zaloha24.rar
ren zaloha22.rar zaloha23.rar
ren zaloha21.rar zaloha22.rar
ren zaloha20.rar zaloha21.rar
ren zaloha19.rar zaloha20.rar
ren zaloha18.rar zaloha19.rar
ren zaloha17.rar zaloha18.rar
ren zaloha16.rar zaloha17.rar
ren zaloha15.rar zaloha16.rar
ren zaloha14.rar zaloha15.rar
ren zaloha13.rar zaloha14.rar
ren zaloha12.rar zaloha13.rar
ren zaloha11.rar zaloha12.rar
ren zaloha10.rar zaloha11.rar
ren zaloha09.rar zaloha10.rar
ren zaloha08.rar zaloha09.rar
ren zaloha07.rar zaloha08.rar
ren zaloha06.rar zaloha07.rar
ren zaloha05.rar zaloha06.rar
ren zaloha04.rar zaloha05.rar
ren zaloha03.rar zaloha04.rar
ren zaloha02.rar zaloha03.rar
ren zaloha01.rar zaloha02.rar
ren zaloha.rar zaloha01.rar
rar a zaloha.rar c:\*CESTA* -t zaloha.rar
Rozdiel je len v tom, že tu sa nebude pridávať komentár do toho archívu. Komentár je dátum a čas aby sa dalo zistiť z ktorého dňa daná záloha je, ale to niekto možno nepotrebuje.
Zálohovanie dát v LINUXe / UNIXe som začal riešiť keď som chcel zálohovať pravidelne dáta na VPS, tj. súbory a databázu. Tu sa moc rozpisovať nebudem, len hodím čím zálohujem súbory a databázu. Čiže mám vytvorený súbor backup.sh a v ňom mám toto:
mkdir /backup/`date "+%Y-%m-%d"`
tar -zcf /backup/`date "+%Y-%m-%d"`/www.gz /www/
tar -zcf /backup/`date "+%Y-%m-%d"`/home.gz /home/
mysqldump --skip-opt --user=MENO --password=HESLO --quote-names --complete-insert --extended-insert --quick --compact --lock-tables=false --skip-add-locks --all-databases | gzip > /backup/`date "+%Y-%m-%d"`/sql.gz
A cez cron tento súbor spúšťam raz za deň. Ak by ste niekto chceli zálohovať len určité tabuľky tak použite toto:
mysqldump --skip-opt --user=MENO --password=HESLO --quote-names --complete-insert --extended-insert --quick --compact --lock-tables=false --skip-add-locks mysql db user help_topic | gzip > sql-`date "+%Y.%m.%d-%T"`.gz
Trošku som sa hral so zálohovaním v linuxe a ošetril som si to aby sa zálohy rotovali, tak ako tomu je vo windowse.
mkdir /backup/`date "+%Y-%m-%d"`
mkdir /backup/`date "+%Y-%m-%d"`/web
mkdir /backup/`date "+%Y-%m-%d"`/sql
mkdir /backup/`date "+%Y-%m-%d"`/ine
tar -zcf /backup/`date "+%Y-%m-%d"`/web/`date "+%T"`.gz /www/
tar -zcf /backup/`date "+%Y-%m-%d"`/ine/root-`date "+%T"`.gz /root/
tar -zcf /backup/`date "+%Y-%m-%d"`/ine/home-`date "+%T"`.gz /home/
mysqldump --skip-opt --user=MENO --password=HESLO --quote-names --complete-insert --extended-insert --quick --compact --lock-tables=false --skip-add-locks --all-databases | gzip > /backup/`date "+%Y-%m-%d"`/sql/`date "+%T"`.gz
rm -r /backup/`date -d "-7 day" "+%Y-%m-%d"`
Mám tam nastavených 7 dní, samozrejme každý si môže nastaviť koľko potrebuje ďalej to už rieši cron trebárs 2 krát denne, alebo podľa toho koľko potrebujete. Napadlo ma, že by sa zálohy mohli raz za deň nahrať na nejaký iný server, ale to je už asi poriadna paranoja, tak ale keď ma niekto niečo dôležité a nemá to TBajty, tak to nebude na škodu.
Napísal mi aj nejaký Jozef, ktorého zaujal môj článok o automatickom zálohovaní dát vo windowse. Svoje automatické zálohovanie riešil ale trošku iným spôsobom ako ja. Pravidelne zálohoval len zmenené súbory, čo niekedy postačuje a je možno aj lepšie riešenie ako to čo tu mám ja. V mojom prípade sa vždy zálohovalo všetko a len rotovalo za posledný mesiac. Obsah jeho súboru zaloha.bat, ktorý mal v plánovači úloh vyzeral takto:
xcopy.exe c:\čo_chceme_zálohovať d:\kam_chceme_zálohovať /I/E/Y/H/R/D/C
Ako vidieť, tak pri opakovanom použití xcopy.exe sa vždy prekopíruje do adresára d:\Backup len nový, alebo zmenený súbor a starý, či nezmenený sa teda ignoruje a neskopíruje. Niekto možno ohodnotí viac takéto riešenie ako to vyššie. Ďalej sa to môže tiež riešiť archiváciou a rotovaním záloh. Je nespočetne veľa rôznych možností.
Parametre na konci spôsobujú to, že sa z daného disku, alebo adresára bude zálohovať len to čo bolo zmenené, čo je pri zálohe trebárs obrázkov, dokumentov či niečoho podobného oveľa výhodnejšie ako ich zálohovať neustále všetky. Ak máte niekto svoje iné riešenie, tak mi ho pošlite mailom a ak je naozaj schopné, tak ho sem môžem tiež pridať pre iných.
Článok bol zobrazený 10125 krát a obsahuje 1168 slov
Pridané 10. marca 2014