| sebb.info |
"Write programs that handle text streams, because that is the universal interface."
Creadores del sistema Unix. |
| Inicio | Informática | Letras | Links | Acerca de |
|
> Respaldo automatizado de bases de datos.
Cómo respaldar una base de datos mysql de manera automática, comprimirla y enviar por correo desde un servidor linux usando sólo la línea de comandos. Pliegue de condiciones:
Propuesta:
Realización: A- El script CopiaSeg.sh Se crea un script como sigue. El script reside en un lugar seguro, como el directorio /root si tenemos acceso, o en un directorio que no sea público o que esté protegido por contraseña. #!/bin/bash # Nombre del archivo, con fecha archivo=Seg_BD_mysql.`date +%d-%m-%y_%H:%M`.zip #Respaldo de la base de datos mysql y compresión máxima mysqldump -unombre_usuario -pcontraseña --databases base_de_datos | \ zip -q -9 -P UnacontraSeÑa $archivo - # Encodificar con uuencode o con uuenview y enviar por mail uuenview -v -m "usuario1@server.com,usuario2@server.com" \ -f "mimail@miservidor.com" -r "mimail@miservidor.com" $archivo # Borrar el archivo temporal rm -f $archivo # # FIN # # B- Cron Aquí preparamos cron para correr el respaldo cada mañana a las 7H de lunes a viernes, llueva o haga sol. Se editan los crontabs con: crontab -e Y se añade: 0 7 * * 1-5 /home/miweb/public_html/scripts/CopiaSeg.sh ^ ^ ^ | | |______ De lunes a viernes. 7 es Domingo; el guión permite expresar listas. | |_____________ 7 Horas. |_______________ 0 Minutos. También se puede hacer con la siguiente línea de comandos: ( crontab -l ; echo "0 7 * * 1-5 /home/miweb/public_html/scripts/CopiaSeg.sh" ) | crontab - C- Restaurar la Base de Datos Entramos en el sistema donde han de estar los datos, por ejemplo con ssh y escribimos: #unzip -P UnacontraSeÑa -p bd.sql.zip | mysql -h 'localhost' -unombre_usuario -pcontraseña --database base_de_datos |