Bueno, toca una mejora del script de respaldos de BDS Que he hecho hace un par de meses y que ya he probado en más de 30 servidores, varios cpanel, varios, plesk varios ispconfig y 1 directadmin ya que hasta hoy añadi soporte para directadmin..
Es igual que el SK-serverUp, pero le quiete la función de transferir archivos por Rsync y LFTP, me di cuenta que era bastante liosa la configuración y que es más fácil hacer un simple cron con rsync para transferir las bases de datos en vez de editar el archivo de configuración que tenia el script..
Ahora el script solo respalda bases de datos, se puede ejecutar directamente como ./script.sh o bien hacer un cron, por defecto esta configurado para guardar 5 días de bases de datos, comprimidas en gz.
Antes que nada se tiene que editar esta linea:
El script saca la clave automáticamente, o sea que no hay que escribir la clave en el archivo de configuración por seguridad, al menos que no se tenga ningún panel y tampoco seteado el .my.cnf con la clave ahí si habría que escribir la clave... dejando servertipy con la opción normal y luego escribiendo la clave unas lineas más abajo:
Por lo demás se puede editar el tiempo que guarda los backups y la ruta donde se guardan.
El script aunque no recomiendo que lo copien y peguen desde aquí si no que lo bajen por los saltos de linea:
Más info: Respaldar todas las bases de datos | Backup All Data Bases: Plesk, cPanel, Ispconfig, DirectAdmin | Base de Conocimientos
Es igual que el SK-serverUp, pero le quiete la función de transferir archivos por Rsync y LFTP, me di cuenta que era bastante liosa la configuración y que es más fácil hacer un simple cron con rsync para transferir las bases de datos en vez de editar el archivo de configuración que tenia el script..
Ahora el script solo respalda bases de datos, se puede ejecutar directamente como ./script.sh o bien hacer un cron, por defecto esta configurado para guardar 5 días de bases de datos, comprimidas en gz.
Antes que nada se tiene que editar esta linea:
Código:
#################
servertype=normal # Opciones: normal, cpanel, plesk, ipsconfig, directadmin
#################
Código:
mypass="pass" # Root Password
Código:
wget http://mirror.skamasle.com/scripts/skdumpbd.sh
Código:
chmod +x skdumpbd.sh
Código:
./skdumpbd.sh
El script aunque no recomiendo que lo copien y peguen desde aquí si no que lo bajen por los saltos de linea:
Código:
#!/bin/bash
# Respaldamos todas las bases de datos del servidor,
# Creamos un archivo con el log,
#
# v0.3 beta Añadido soporte a directadmin.
# 9 de oct del 2014
# Maks Skamasle | Skamasle.com | yo@skamasle.com | twiter @Skamasle
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. [url]http://www.gnu.org/licenses/[/url]
# Bajo licencia GNU GPL [url]http://www.gnu.org/licenses/[/url] se distribuye sin ninguna garantía.
# Actualizaciones y más: [url]http://kb.skamasle.com/2014/respaldar-todas-las-bases-de-datos-backup-all-data-bases-plesk-cpanel-ispconfig/[/url]
backupin=/root/sk-mysqldump # Ruta para guardar los backup
expira=5 # Número de días que se retienen los backups de MSYQL en local (archivos mayores a 2 días se borran antes del backup)
# Datos de mysql.
# Tipo de servidor.
# Detectamos el tipo de servidor, plesk, cpanel o ispconfig para obtener automaticamente la clave de la base de datos.
# Si el servidor no es plesk, cpanel o ispconfig dejamos como "normal" y definimos la clave en la parte de abajo en mypass.
#################
#################
servertype=ispconfig # Opciones: normal, cpanel, plesk, ipsconfig, directadmin
#################
#################
myuser="root"
mypass="pass" # Root Password
myhost="localhost"
if [ $servertype = plesk ]; then
myuser="admin"
mypass=`cat /etc/psa/.psa.shadow`
fi
if [ $servertype = cpanel ]; then
# cPanel algunos servidores en el .my.cnf tienen " en el pass y otros no así que hay que
# editar el cut -d '"' en caso de no tener comillas cambiar el " por un =, las versiones viejas no tiene
# comillas.... las nuevas luego de 11.32 suelen tenerlo
mypass=`cat /root/.my.cnf |grep password | cut -d '"' -f2`
fi
if [ $servertype = ispconfig ]; then
mypass=`cat /usr/local/ispconfig/server/lib/mysql_clientdb.conf |grep password | cut -d "'" -f2`
fi
if [ $servertype = directadmin ]; then
myuser="da_admin"
mypass=`cat /usr/local/directadmin/conf/mysql.conf |grep passwd| cut -d "=" -f2`
fi
MKDIR=/bin/mkdir
TOUCH=/bin/touch
logfile=/root/SK-BackupLog.txt
fecha=$(/bin/date)
if [ ! -d $backupin ]; then
$MKDIR $backupin
else
find $backupin -type d -mtime +$expira | xargs rm -Rf
fi
if [ ! -e $logfile ]; then
$TOUCH $logfile
fi
carpetabk=$backupin/`date +%Y-%m-%d-h%H%M-%S`
if [ ! -d $carpetabk ]; then
$MKDIR -p $carpetabk
fi
# no hace falta cambiarlo
lists=$(echo "show databases;" | mysql -h $myhost -u $myuser -p$mypass | grep -v Database | grep -v information_schema | grep -v performance_schema | grep -v phpmyadmin | grep -v mysql)
echo "Comenzando el respaldo de las bases de datos" >> $logfile
tput setaf 1
tput bold
echo "Comenzando el respaldo de las bases de datos"
tput sgr0
echo $fecha >> $logfile
for db in $lists
do
# el "yes |" sobre escribe los archivos si ya existen de un backup anterior (por si se ejecuta dos veces)
tput setaf 2
echo "Respaldo base de datos $db"
mysqldump -h $myhost -u$myuser -p$mypass --opt $db > $carpetabk/$db.sql 2>/tmp/skdump_errorlog
echo "Respaldando $db" >> $logfile
tput setaf 3
echo "Comprimiendo (gzip) base de datos --- $db"
tput sgr0
gzip $carpetabk/$db.sql
done
echo "Backup completo!" >> $logfile
echo $fecha >> $logfile
echo "Puedes revisar el log en $logfile y el errorlog en /tmp/skdump_errorlog"