Mostrando entradas con la etiqueta Respaldo de Datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Respaldo de Datos. Mostrar todas las entradas

Script Backup MySQL.

d
Nombre: script_backup_mysql.sh
Autor: Desconocido
Visto y información de configuración en Ciber Terminal
#!/bin/bash
BACKUPUSER="backup_user"
BACKUPPASS="PASSWORD"
BACKUPPATH="/home/backup/mysql"
MYDATE="$(date +%Y%m%d)"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"
MYCNF="/etc/mysql/my.cnf"
ZIP="/bin/bzip2"
ZIPOPS="-9f"
IGNOREDDBB="Database|mysql|information_schema"
 
DBLIST=""
CHMOD="440"
CHOWN="root:admins"
 
BINLOGINDEX="/home/mysql/log/mysql-bin.index"
 
list_databases()
{
        DBLIST="`echo "show databases ;" | $MYSQL -u "$BACKUPUSER" --password="$BACKUPPASS" | egrep -v "$IGNOREDDBB"`"
         return 1
}
 
dump_databases()
{
        for i in $DBLIST
        do
                $MYSQLDUMP --master-data=2 -u "$BACKUPUSER" --password="$BACKUPPASS" $i > $BACKUPPATH/$i-$MYDATE.sql
                $ZIP $ZIPOPS $BACKUPPATH/$i-$MYDATE.sql
        done
        return 1
}
 
dump_grants()
{
        mysql -p$BACKUPPASS --batch --skip-column-names --execute="SELECT DISTINCT CONCAT('SHOW GRANTS FOR ',user,'@\'',host,'\';') AS query FROM user" mysql | mysql -p$BACKUPPASS --batch --skip-column-names mysql | perl -p -e '$_ =~ s/$/;/; END { print "FLUSH PRIVILEGES;n" }' > $BACKUPPATH/grants-$MYDATE.sql
        $ZIP $ZIPOPS $BACKUPPATH/grants-$MYDATE.sql
}
 
 
binlog_backup()
{
        local let LINES=$(cat $BINLOGINDEX | wc -l)
        let LINES--
        tar cjfv $BACKUPPATH/MYSQL_BINLOGS-$MYDATE.tar.bz2 $(head -$LINES $BINLOGINDEX | xargs)
}
 
 
 
purge_binlogs()
{
        local LOGBIN="$(cat $MYCNF | grep -v ^# | grep log_bin | awk -F= '{print $2}')"
        local BINLOGNAME="$(basename $LOGBIN | awk -F. '{print $1}')"
        local BINLOGPATH="$(dirname $LOGBIN)"
        local let MINAGE="$(cat $MYCNF | grep -v ^# | grep expire | awk -F\= '{print $2}')"
        let MINAGE=$((${MINAGE}+2))
        local LASTBINLOG="$(find $BINLOGPATH -mtime +$MINAGE -name "*$BINLOGNAME*" | tail -1)"
        if [[ "$LASTBINLOG" ]]
        then
                local LASTBINLOG="$(basename $LASTBINLOG)"
                echo "PURGE BINARY LOGS TO "$LASTBINLOG";" | $MYSQL -u "$BACKUPUSER" --password="$BACKUPPASS"
        fi
}
 
list_databases
dump_databases
dump_grants
purge_binlogs
 
find $BACKUPPATH -type f -exec chmod $CHMOD {} ;
find $BACKUPPATH -type f -exec chown $CHOWN {} ;
 
exit 0
Leer más...

Script para realizar backup de base de datos MySql y enviarlo por SSH a otro servidor.

d
Autor: FG
Visto en Crea tu software
!/bin/bash
 
#
# Autor : FG 29.03.2011
# Modif.: FG 30.03.2011
# Script para realizar backup de la base 
# de datos MySql
#
# Crontab:
# m h  dom mon dow   command
#00 04 01 * *    /usr/local/bin/backup.sh
#
 
# Configuracion base de datos
DbUser=root
DbHost=127.0.0.1
DbPass=1234
DbName=pruebas
 
# Configuracion numero maximo de backups a guardar
MaxBackups=7
 
# Configuracion de comandos
MySqlDump_cmd=/usr/bin/mysqldump
Tar_cmd=/bin/tar
LOCAL_SCP_CMD=/usr/bin/scp
LOCAL_SSH_CMD=/usr/bin/ssh
 
# Configuracion de directorios
DirTmp=/tmp
DirBackup=/backups 
 
# Configuracion archivo de backup
HOY=`date +"%Y-%m-%d_%H_%M_%S"`
FileNameBackup=backup_$HOY
 
# Configuracion archivos temporales y backups (Ojo no cambiar la extension del archivo)
FileTmpBackup=$DirTmp/$FileNameBackup.sql
FileBackup=$DirBackup/$FileNameBackup.tgz
BackupsFilePath=$DirTmp/backupspaths
 
# Configuracion SSH para enviar backup a otro servidor
ENABLED_REMOTE_BACKUP_SSH=1
CLAVE_SSH=/usr/local/bin/ssh_keys/id_rsa
IP_REMOTE_SSH=192.168.0.1
PORT_REMOTE_SSH=22
USER_SSH=root
HOY_SSH=`date +"%u"`
FileNameBackup_SSH=backup_$HOY_SSH.tgz
REMOTE_FILE_SSH=/ backups/ $FileNameBackup_SSH
LOCAL_FILE_SSH=$FileBackup
 
# Inicio del proceso de backup
 
echo "Generando backup de la base de Datos MySql..."
 
# Comprobacion de existencia de los directorios necesarios
if [ ! -d "$DirTmp" ]; then
    echo "Error, el directorio temporal '$DirTmp' no existe."    
    exit
fi
 
if [ ! -d "$DirBackup" ]; then
    echo "Error, el directorio para las copias '$DirBackup' no existe."
    exit
fi
 
# Crear archivo SQL con estructura y datos de la base de datos MySql   
$MySqlDump_cmd -u $DbUser --host $DbHost --password=$DbPass $DbName > $FileTmpBackup
chmod 777 $FileTmpBackup
 
# Comprime el script de backup de la base de datos MySql
$Tar_cmd czvf $FileBackup $FileTmpBackup &> /dev/null 
rm $FileTmpBackup 
 
# Borra los backups antiguos
echo "Realizado limpieza de backups antiguos..."
 
find $DirBackup -name '*.tgz' | sort -r > $BackupsFilePath
chmod 777 $BackupsFilePath
 
i=1
 
while read file; do        
    if [ $i -gt $MaxBackups  ]; then
        echo "Eliminando backup antiguo: $file "
        chmod 777 $file
        rm $file
    fi
 
    i=`expr $i + 1`                
done < $BackupsFilePath
 
rm $BackupsFilePath
 
# Envia el backup al servidor remoto si la funcion esta activada
if [ $ENABLED_REMOTE_BACKUP_SSH = 1 ]; then
       echo "Copiando backup al servidor remoto..."




      $LOCAL_SCP_CMD -P $PORT_REMOTE_SSH \ 
      -i $CLAVE_SSH $LOCAL_FILE_SSH \ 
      $USER_SSH@$IP_REMOTE_SSH:$REMOTE_FILE_SSH
fi
 
echo "Terminado de realizar backup de la base de Datos MySql."

Leer más...

Script para respaldar y restaurar el MBR

d
Autor: Descoocido
Descripcion: Mbrback script crea una copia de seguridad del MBR de su disco duro y su tabla de particiones. A continuación, puede utilizar mbrback para restablecer el código de arranque MBR, MBR completo, o tabla de partición de los archivos de copia de seguridad.

#!/bin/bash
# Script Name: mbrback http://igurublog.wordpress.com/downloads/script-mbrback/
# Requires: util-linux
# License: GNU GENERAL PUBLIC LICENSE Version 3 http://www.gnu.org/licenses/gpl-3.0.txt

# do not change these variables!
argsneeded=1
restoretype=""
back=""
devname=""

help ()
{
echo 'mbrback version 1.0.0'
echo 'Creates MBR and partition table backups of DEVICE named:'
echo ' HOST-DEVICE-MBR-back'
echo ' HOST-DEVICE-partition-back.sf'
echo 'Restores MBR and partition table from specified backup file'
echo 'Usage: sudo mbrback DEVICE [BACKUPFOLDER]'
echo ' (creates backup files of DEVICE)'
echo 'Usage: sudo mbrback --restoreboot DEVICE [BACKUPFILE]'
echo ' (restores MBR boot code only)'
echo 'Usage: sudo mbrback --restorefullmbr DEVICE [BACKUPFILE]'
echo ' (restores entire MBR)'
echo 'Usage: sudo mbrback --restorepart DEVICE [BACKUPFILE.sf]'
echo ' (restores partition table)'
echo 'Example: sudo mbrback sda'
echo ' (creates MBR and partition table backups of'
echo ' /dev/sda in current folder)'
echo 'Example: sudo mbrback /dev/sda'
echo ' (creates MBR and partition table backups of'
echo ' /dev/sda in current folder)'
echo 'Example: sudo mbrback sda /mybackups'
echo ' (creates MBR and partition table backups of'
echo ' /dev/sda in /mybackups)'
echo 'Example: sudo mbrback --restoreboot sda /mybackups/sys-sda-MBR-back'
echo ' (restores MBR boot code of /dev/sda using'
echo ' /mybackups/sys-sda-MBR-back)'
echo 'Example: sudo mbrback --restorepart sda /mybackups/sys-sda-partition-back.sf'
echo ' (restores partition table of /dev/sda using sfdisk file '
echo ' /mybackups/sys-sda-partition-back.sf)'
echo
echo "When restoring, mbrback will always tell you what it's going to do"
echo "and allow you to abort before it writes to disk."
echo
echo "Instructions and updates:"
echo "http://igurublog.wordpress.com/downloads/script-mbrback/"
echo
}

index=0
while [ "$1" != "" ];
do
if [ "${1:0:1}" = "-" ]; then
case "$1" in
--help | -help )
help
exit
;;
--restoreboot )
if [ "$restoretype" = "" ]; then
restoretype="boot"
else
echo 'mbrback: can only use one restore option'
exit 1
fi
;;
--restorefullmbr )
if [ "$restoretype" = "" ]; then
restoretype="fullmbr"
else
echo 'mbrback: can only use one restore option'
exit 1
fi
;;
--restorepart )
if [ "$restoretype" = "" ]; then
restoretype="part"
else
echo 'mbrback: can only use one restore option'
echo
help
exit 1
fi
;;
* )
echo "mbrback: Unknown option $1"
echo
help
exit 1
;;
esac
else
let "index+=1"
case $index in
1 )
devname=`basename "$1"`
if [ ! -b "/dev/$devname" ]; then
echo "mbrback: /dev/$devname is not a valid device"
exit 1
fi
;;
2 )
back="$1"
;;
* )
echo "mbrback: Too many arguments"
exit 1
;;
esac
fi
shift
done
if (( index < $argsneeded )) || [ "$devname" = "" ]; then echo "mbrback: missing arguments" echo help exit 1 fi if [ `whoami` != "root" ]; then echo 'mbrback: must be run with sudo' exit 1 fi sysname=$HOSTNAME if [ "$restoretype" = "" ]; then # create MBR and table backups if [ "$back" = "" ]; then back=`pwd` else if [ ! -d "$back" ]; then echo "mbrback: $back is not a valid backup folder" exit 1 fi fi dd if=/dev/$devname of="$back/$sysname-$devname-MBR-back" bs=512 count=1 sfdisk -d /dev/$devname > "$back/$sysname-$devname-partition-back.sf"
else
# restore
if [ "$back" = "" ]; then
echo "mbrback: you must specify a backup file"
exit 1
elif [ ! -f "$back" ]; then
echo "mbrback: file not found - $back"
exit 1
fi
if [ "$restoretype" = "boot" ] || [ "$restoretype" = "fullmbr" ]; then
sfhead=`head --bytes=21 "$back"`
if [ "$sfhead" = "# partition table of " ]; then
echo "mbrback: $back is not an MBR backup file"
exit 1
fi
if [ "$(stat -c%s "$back")" != "512" ]; then
echo "mbrback: $back is wrong size for an MBR backup file"
exit 1
fi
fi
if [ "$restoretype" = "part" ]; then
sfhead=`head --bytes=21 "$back"`
if [ "$sfhead" != "# partition table of " ]; then
echo "mbrback: $back not a valid sfdisk backup file"
exit 1
fi
echo
echo "You are about to overwrite your /dev/$devname partition table with"
echo "the contents of $back"
echo
echo "WARNING!!! Unless the partition table has been damaged or you"
echo " have accidentally deleted a partition, you should abort."
echo
echo "WARNING!!! Restoring the partition table from an out-of-date backup"
echo " may render ALL the data on your drive unreadable."
echo
echo "WARNING!!! Do not proceed if /dev/$devname is mounted."
echo
elif [ "$restoretype" = "boot" ]; then
echo
echo "You are about to overwrite your /dev/$devname MBR boot code with"
echo "the contents of $back"
echo
echo "WARNING: Restoring your MBR boot code from an out-of-date MBR backup"
echo " file may render your computer unbootable."
elif [ "$restoretype" = "fullmbr" ]; then
echo
echo "You are about to overwrite your ENTIRE /dev/$devname MBR with"
echo "the contents of $back"
echo
echo "WARNING!!! The full MBR contains both boot code and the drive's"
echo " partition table. Unless the partition table has been"
echo " damaged or you have accidentally deleted a partition"
echo " you should abort and restore boot code only with"
echo " --restoreboot instead."
echo
echo "WARNING!!! Restoring your full MBR from an out-of-date MBR backup may"
echo " render your computer unbootable and ALL the data on your"
echo " drive unreadable."
echo
echo "WARNING!!! Do not proceed if /dev/$devname is mounted."
fi
echo
echo "Do you want to proceed? (you must type yes to proceed)"
read s1
if [ "$s1" != "yes" ]; then
echo "mbrback: no changes made - aborted at user request"
exit 2
fi
if [ "$restoretype" = "part" ]; then
sfdisk /dev/$devname < "$back" elif [ "$restoretype" = "boot" ]; then dd if="$back" of=/dev/$devname bs=448 count=1 elif [ "$restoretype" = "fullmbr" ]; then dd if="$back" of=/dev/$devname bs=512 count=1 fi echo "/dev/$devname was updated" fi exit 0
Leer más...