Script SHELL para generar respaldos de archivos y bases de datos via SSH

Bueno, para comenzar a dar un poco de historia al blog, me toco un cliente que me solicito, cambiar su Panel de Control Plesk, por Webmin, luego de hacer esto me pidió configurar los backups (respaldos de bases de datos y archivos de los sitios web), he allí donde encontré el problema, webmin por alguna razón tenia algún problema al generar backups. (asumo que son problemas de permisos locales) ya que por SSH y FTP si me dejaba crear el backup. Aunque era un backup en formato que desconozco. (es un backup propio que genera webmin con sus configuraciones. Por cuestiones de tiempo no me puse a leer la documentación para entender como desglosar el backup y sacar por un lado los archivos y por otro lado las bases de datos, asi que me puse manos a la obra y genere un pequeño script en shell bash para generar los backups.

Entonces para seguir con el tema, Mi pequeño script hace lo siguiente:

  • Obtiene la fecha actual para luego agregarla en el nombre de los backups quedando de esta manera: * all_databases_2018-09-17.sql | files_2018-09-17.tar.gz
  •  Crea una carpeta en el directorio /root del servidor llamada backups y da permisos 777
  • Comprime el directorio completo /var/www (con todos los sitios web que esten dentro)
  • Crea una copia de TODAS LAS BASES DE DATOS CREADAS EN EL SERVIDOR hasta ese dia (dia que se ejecuta el script)
  • Busca archivos viejos en solo esa carpeta (o backups viejos despues de 7 dias y los borra para no consumir mucho en el servidor)

Por supuesto, que esto no es mas que un script en shell, que debes copiar y guardar como backups.sh, luego proporcionar permisos al archivo con:

Ademas recuerda agregar esto como una tarea “cron job” en tu servidor para que se ejecute a diario.

Espero que les sirva. 🙂 Salu2..