En todo servidor propio es necesario preocuparse por disponer de los backups necesarios para restaurar los sistemas.
Esto incluye:
- Codigo fuente ( GIT, github, gitlab )
- Archivos producidos por los usuarios ( AWS S3 )
- Base de datos
- Microsoft Azure, empezando desde 80USD mensuales
- AWS RDS, empezando desde 10.5USD mensuales
- Google Cloud SQL, empezando desde 8USD mensuales
databases=`mysql -e 'show databases;' | tr -d "| " | grep -v Database | grep -v information_schema | grep -v performance_schema` fecha=` date +%Y%m%d` mkdir -p /backup/$fecha fechaold=`date -d "7 day ago" +%Y%m%d` rm /backup/$fechaold -R for db in $databases; do if [ -f /backup/$db.clear ]; then mysql $db < /backup/$db.clear fi mysqldump $db > /backup/$fecha/$db.sql tar -czf /backup/$fecha/$db.tar.gz backup/$fecha/$db.sql rm /backup/$fecha/$db.sql doneAhora debemos configurar el script para que se ejecute todos los dias a una hora especifica
crontab -e 0 5 * * * bash backup.shAunque el script ubique los backups en el directorio de mayor seguridad de nuestro servidor ( root ), es recomendable ubicar una copia en otro lugar para evitar cualquier contingencia. Este otro lugar, podria ser otro servidor encargado de gestionar los backups de varios servidores o incluso una maquina personal local. Para configurarlo deberemos habilitar el acceso por ssh de la maquina que guardara los backups
0 6 * * * scp -r backup@servidor.com:/backup/`date +%Y%m%d` .
Add new comment