Backup de BD de forma remota
Con esto de que el blog (aspecto gráfico, programación y BD) me lo he hecho yo al 100% pues la cosa es que fastidiaría mucho perderlo por algún problema con el servidor o con la BD.
Hasta ahora hacía las copias de seguridad diarias, pero dentro del mismo servidor, pero la verdad es que no lo veía como algo de seguridad, sino para acallar la conciencia. Fue el otro día cuando a raíz de leer el blog de Alfredo Pérez, me propuse usar ése método pero con algunas variantes.
Las diferencias entre ese método y el que ahora expongo es una mayor seguridad en que alguna modificación de la BD, no nos afectaría a gran escala, quiero decir, hacer copias por horas de la BD, por lo que si por error eliminamos algún dato, en el anterior backup todavía estará intacto. Hay que decir que son copias totales de la BD, ya que es pequeña, lo ideal seria usar este método con backup incrementales. También se han seguido otros pasos para que resultaran en Mandriva.
Creamos el archivo con el editor de consola nano, aunque se puede hacer con cualquiera.# nano bajarBDAl abrirse el editor ponemos la siguiente línea (mysqldump –user=USUARIO –password=PASSWORD –host=IP_REMOTA nombre_BD | gzip > /home/_usuario_/_carpetaBackup_/database`date +%d%m%Y%H%M%`.sql.gz):mysqldump --user=USUARIO --password=PASSWORD --host=IP_REMOTA nombre_BD | gzip > /home/_usuario_/_carpetaBackup_/database`date +%d%m%Y%H%M%`.sql.gz #Estas 3 líneas van todo seguido en unaEn la sentencia mysqldump ponemos nuestro usuario, contraseña y IP de la máquina remota de la que queremos importar la BD, luego el nombre de la base de datos, hacemos una compresión con gzip al archivo que se ve posteriormente. La sentencia rara que veis como “database`date +%d%m%Y%H%M%`.sql.gz” es porque al nombre del archivo he añadido la fecha de creación, para que no se sobrescriban y tener un registro por horas sin problema. Hay que tener en cuenta que para esto las comillas deben ser las invertidas.
echo Backup realizado con éxito en:
date +%c
Las dos últimas líneas las he puesto para saber en que fecha se ha realizado el backup con éxito, porque si éste diera algún error, mostraría el error desde ”mysqldump” y lo siguiente nos seguiría dando la fecha, pero de este error.
A continuación copiamos el archivo a /usr/bin y le damos permisos restringidos:mv bajarBD /usr/bin/bajarBDUna vez acabado esto toca editar cron para ñadir la tarea.
chmod 775 /usr/bin/bajarBD
Vamos a usar el editor por defecto de cron, que es vi:crontab -ePara añadir pulsamos ”a” y para guardar y salir: Esc y luego ”ZZ”. Añadimos la siguiente línea que ahora explicaréSHELL=/bin/bashCon esto lo que hacemos es que nos produzca una copia cada hora a las 00, y nos imprima un registro de la salida de nuestro archivo por lotes, al que le habíamos puesto un par de echo’’s. Una vez salimos y guardamos, nos generará un backup de la base de datos automáticamente cada hora.
00 * * * * /usr/bin/bajarBD >> /home/_usuario_/_carpetaBackup_/registro.log
Ahora solo queda hacerlo de todo el /home del hosting, pero eso, para otro día.
Categoria: Trucos | 1 Comentario
Archivo .basrch
Ayer estaba estudiando en la sala de la UMH, cuando intentando instalar la Wifi con sus permisos y certificados, se me jodió el archivo .bashrc del root. (Imagino que sería por estar ejecutando un script para Debian en Mandriva, y retocándolo en tiempo real…XD).
El caso es que por internet solo encontraba como arreglar el PATH, pero lo que está claro es que la línea con todas las direcciones tiene que estar en algún sitio, y uno de esos sitios es el archivo bashrc. Existen dos sitios dónde está este archivo. El primero es en /etc/bashrc, y como es shell script, se ejecuta siempre que que un usuario entra a bash. El otro archivo es el relativo a cada usuario, sea “mengano”, “francesc” o en el caso que nos ocupa, “root”. Cada archivo de cada usuario se encuentra dentro de /home/_usuario_/.bashrc (para hacerlo invisible). En nuestro caso estaba en /root/.bashrc.
Digo todo esto porque la diferencia de las direcciones del archivo por defecto y el de “root”, estaba en una dirección: /usr/sbin. Me dí cuenta al ir a actualizar paquetería, pues no encontraba urpmi. (error: “bash: urpmi: command not found”) cuando si que lo tengo instalado, así que me puse manos a la obra. La causa era que al borrarse la línea del bashrc del root, cargaba el archivo por defecto, el cual no tiene esta línea en el PATH. El arreglo fue sencillo definiendo un nuevo PATH dentro del archivo, agregando la línea, y exportándolo todo.
# .bashrc
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
ENV=$HOME/.bashrc
USERNAME=”root”
export USERNAME ENV PATH
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Categoria: Trucos | Dejar un comentario
« go back