uvt:linux:pg_dump
Rozdiely
Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.
| Nasledujúca revízia | Predchádzajúca revízia | ||
| uvt:linux:pg_dump [25/11/2011 11:41] – vytvorené rh641dv | uvt:linux:pg_dump [25/11/2011 12:48] (aktuálne) – rh641dv | ||
|---|---|---|---|
| Riadok 1: | Riadok 1: | ||
| - | pokus | + | ====== PostgreSQL zalohovanie ====== |
| + | |||
| + | Vytovaranie pravidelnych zaloch pre postgresql s rozdelenim na: | ||
| + | - tyzdenna zaloha | ||
| + | - denna zaloha | ||
| + | - hodinova zaloha | ||
| + | |||
| + | Pripravene pre spustanie pod uzivatelom postgresql s definovanim vsetkych databaz na servery, ktore je potrebne takto zalohovat. | ||
| + | |||
| + | ===== cron ===== | ||
| + | |||
| + | < | ||
| + | 0 * * * * / | ||
| + | </ | ||
| + | |||
| + | ===== pg_dump.sh ===== | ||
| + | |||
| + | < | ||
| + | # | ||
| + | # 22.11.2011 | ||
| + | |||
| + | #vytvorenie zaloh databazy | ||
| + | #1) tyzdenna zaloha | ||
| + | #2) denna zaloha | ||
| + | #3) hodinova zaloha | ||
| + | |||
| + | date | ||
| + | echo " | ||
| + | |||
| + | #zoznam databaz | ||
| + | ZALOHUJ_DB=" | ||
| + | |||
| + | # nastavenia | ||
| + | DIR=/ | ||
| + | DIR1=$DIR/ | ||
| + | DIR2=$DIR/ | ||
| + | DIR3=$DIR/ | ||
| + | DIR1_MAX=200 # | ||
| + | DIR2_MAX=60 # | ||
| + | DIR3_MAX=48 # | ||
| + | |||
| + | ################## | ||
| + | #vymazanie starych suborov nad maximalny pocet | ||
| + | function vymaz_subor() | ||
| + | { | ||
| + | #vstup 1: adresar | ||
| + | ADRESAR=$1 | ||
| + | #vstup 2: maximalny pocet | ||
| + | MAX=$2 | ||
| + | |||
| + | echo " | ||
| + | |||
| + | #kontrola, ci existuje adresar | ||
| + | if [ ! -d " | ||
| + | echo " | ||
| + | return 0 | ||
| + | fi | ||
| + | |||
| + | echo "mazem z: $ADRESAR" | ||
| + | |||
| + | #kontrola, ci je max vacsie ako 0 | ||
| + | if [[ $MAX -le 0 ]]; then | ||
| + | echo " | ||
| + | return 0 | ||
| + | fi | ||
| + | |||
| + | #ziskaj zoznam suborov | ||
| + | POCET=`ls $ADRESAR/* | wc -l | sed -e 's/ // | ||
| + | |||
| + | echo " | ||
| + | |||
| + | #ak je pocet vacsi ako maximum | ||
| + | if [[ $POCET -gt $MAX ]]; | ||
| + | then | ||
| + | #vypocet, kolko suborov sa ma vymazat | ||
| + | VYMAZ=`expr $POCET - $MAX` | ||
| + | |||
| + | echo "mazem pocet: $VYMAZ" | ||
| + | |||
| + | # | ||
| + | SUBOR=`ls -tr $ADRESAR/* | head -$VYMAZ` | ||
| + | |||
| + | # | ||
| + | rm -f $SUBOR | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | ####################### | ||
| + | # | ||
| + | DAY=`date " | ||
| + | HOD=`date " | ||
| + | |||
| + | #tyzdenna zaloha | ||
| + | if [[ $DAY = 1 && $HOD = 00 ]] ; then | ||
| + | echo " | ||
| + | |||
| + | DIR=$DIR1 | ||
| + | DIR_MAX=$DIR1_MAX | ||
| + | |||
| + | #denna zaloha | ||
| + | else if [[ $HOD = 00 ]] ; then | ||
| + | echo "DENNA ZALOHA" | ||
| + | |||
| + | DIR=$DIR2 | ||
| + | DIR_MAX=$DIR2_MAX | ||
| + | |||
| + | #denna zaloha | ||
| + | else | ||
| + | echo " | ||
| + | |||
| + | DIR=$DIR3 | ||
| + | DIR_MAX=$DIR3_MAX | ||
| + | fi fi | ||
| + | |||
| + | #kontrola, ci existuje adresar | ||
| + | if [ ! -d " | ||
| + | mkdir $DIR | ||
| + | fi | ||
| + | |||
| + | ####################### | ||
| + | #prechadzaj jednotlive databazy | ||
| + | for DB in $ZALOHUJ_DB; | ||
| + | #vytvor nazov suboru | ||
| + | SUBOR=$DB\_`date " | ||
| + | |||
| + | #kontrola, ci existuje adresar | ||
| + | if [ ! -d " | ||
| + | mkdir $DIR/$DB | ||
| + | fi | ||
| + | |||
| + | # | ||
| + | echo " | ||
| + | pg_dump -O $DB > $DIR/ | ||
| + | |||
| + | #zozipuj zalohu | ||
| + | gzip -r $DIR/ | ||
| + | |||
| + | # | ||
| + | vymaz_subor $DIR/$DB $DIR_MAX | ||
| + | done | ||
| + | |||
| + | echo " | ||
| + | date | ||
| + | </ | ||
uvt/linux/pg_dump.1322217702.txt.gz · Posledná úprava: od rh641dv
