You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.5 KiB
46 lines
1.5 KiB
#!/usr/bin/env bash |
|
|
|
#Ruta de destino backup |
|
#DEST=usuaro@host:/path |
|
DEST=usuaro@host:/path |
|
|
|
#Variables de entorno (LAS MISMAS INGRESADAS EN .env) |
|
CONTAINER_NAME=mysql_db |
|
MYSQL_DATABASE=mysql |
|
MYSQL_ROOT_PASSWORD=mysql |
|
|
|
|
|
SCRIPT_PATH=$(realpath $0) |
|
WORKDIR=$(dirname ${SCRIPT_PATH}) |
|
DIR=$(pwd) |
|
LOG_DIR=${WORKDIR}/backup.log |
|
FECHA=`date +%Y%m%d` |
|
|
|
echo [`date`] ========== Comenzando script Backup - MYSQL ========== >> $LOG_DIR |
|
cd ${WORKDIR} |
|
|
|
echo [`date`] ::Volcando DB a ${WORKDIR}/backups/${MYSQL_DATABASE}${FECHA}.sql >> $LOG_DIR |
|
docker container exec -it ${CONTAINER_NAME} bash -c "mysqldump -p${MYSQL_ROOT_PASSWORD} ${MYSQL_DATABASE} > backups/${MYSQL_DATABASE}${FECHA}.sql" |
|
echo [`date`] ___ OK >> $LOG_DIR |
|
echo ------------------------------------ >> $LOG_DIR |
|
|
|
echo [`date`] ::Comprimiendo ${WORKDIR}/backups/${MYSQL_DATABASE}${FECHA}.sql a ${WORKDIR}/backups/${MYSQL_DATABASE}${FECHA}.zip >> $LOG_DIR |
|
cd backups |
|
zip -r ${MYSQL_DATABASE}${FECHA}.zip ${MYSQL_DATABASE}${FECHA}.sql |
|
cd ${WORKDIR} |
|
echo [`date`] ___ OK >> $LOG_DIR |
|
echo ------------------------------------ >> $LOG_DIR |
|
|
|
echo [`date`] ::Copiando de ${WORKDIR}/backups/${MYSQL_DATABASE}${FECHA}.zip a ${DEST} >> $LOG_DIR |
|
scp backups/${MYSQL_DATABASE}${FECHA}.zip ${DEST} |
|
echo [`date`] ___ OK >> $LOG_DIR |
|
echo ------------------------------------ >> $LOG_DIR |
|
|
|
echo [`date`] ::Eliminando ${WORKDIR}/backups/${MYSQL_DATABASE}${FECHA}.* >> $LOG_DIR |
|
rm backups/${MYSQL_DATABASE}${FECHA}.* |
|
echo [`date`] ___ OK >> $LOG_DIR |
|
echo ------------------------------------ >> $LOG_DIR |
|
|
|
# Vuelvo al directorio actual |
|
cd ${DIR} |
|
exit 0
|
|
|