Translate

lunes, 17 de septiembre de 2012

BACKUPS DE MYSQL

Esta es la Segunda versión del script para Mysql.

Mejoras:
  1. Genera los directorios
  2. Genera archivos de Logs
  3. Borra por seguridad el archivo arrays.file 
Script 

#!/bin/bash

declare -a array1
declare -a counts

## BEGIN CONFIG ## 

host=XX.XX.XX.XX
user=dumps
pass='password'
datetime=$(date +%Y%m%d)
timedate=$(date +%T)
pathbkp=/var/local/dumps
filename=$pathbkp/arrays.file
logdir=$pathbkp/LOG/

## END CONFIG ##

a=0

 if [ ! -d $pathbkp ]; then    
    mkdir -p $pathbkp
    mkdir -p $logdir
    chown -R mysql.mysql $pathbkp
    chmod -R 755 $pathbkp 
    touch $filename
 else
    touch $filename
 fi  

args=("-h $host -u $user -p$pass" "-h $host -u $user -p$pass --opt ")

mysqlshow ${args[0]} > $filename

counts=( `cat "$filename" | sed -e '/+/d' | tr -d '|' | sed -e '/Database/d'| sed -e '/information_schema/d' | wc -w `)
array1=( `cat "$filename" | sed -e '/+/d' | tr -d '|'  | sed -e '/Database/d' | sed -e '/information_schema/d'` )

while [ $a -lt $counts ]
    do
        echo ${array1[$a]}-$datetime-$timedate.sql
        mysqldump ${args[1]} ${array1[$a]} > $pathbkp/${array1[$a]}-$datetime-$timedate.sql2>&1

        if [ "$?" != "0" ]; then
       
        echo ${array1[$a]}-$datetime-$timedate.sql - $datetime - $timedate "No se realizo Dumps" >>  $logdir/dumps-error.log

        else

        echo ${array1[$a]}-$datetime-$timedate.sql - $datetime - $timedate "Se realizo Dumps" >>  $logdir/dumps-exito.log

        fi
       
        let a+=1
    done

rm -f $filename

exit 0

lunes, 10 de septiembre de 2012

BACKUPS EN POSTGRESQL

Este script permite hacer dumps de las bases y tiene la particularidad que si agregamos una mas a nuestro servidor la reconoce y hace el dump !. Lo unico el script debe estar en
/var/lib/postgresql

Script

#!/bin/bash 

 declare -a counts
 declare -a array1 

 ## BEGIN CONFIG ##

 HOST=XX.XX.XX.XX
 BACKUP_DIR=/var/lib/postgresql/dumps
 USER=postgres
 datetime=$(date +%Y%m%d)
 filename=/var/lib/postgresql/dumps/arrays

 ## END CONFIG ##

a=0

 if [ ! -d $BACKUP_DIR ]; then  
    mkdir -p $BACKUP_DIR
    chown -R postgres.postgres $BACKUP_DIR
    chmod -R 755 $BACKUP_DIR  
    touch $filename
 fi    

psql -h $HOST -U $USER -l | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /template[0-9]/) { print $1 }' > $filename    

counts=( `cat "$filename" | wc -w `)
array1=( `cat "$filename"` )

while [ $a -lt $counts ]
do
echo ${array1[$a]}-$datetime.sql
pg_dump -h $HOST -U $USER --column-inserts ${array1[$a]} > $BACKUP_DIR/${array1[$a]}-$datetime.sql
let a+=1
done

exit 0