Files
pyfleet/backup_fleet.sh
T
2026-08-28 19:30:48 +02:00

64 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Configuración
ORIGEN="/home/informatica/docker/pyfleet/database/pyfleet.db"
DESTINO="/mnt/backup/backup_mysql"
LOG="/mnt/backup/logs/backup_pyfleet.log"
# Crear directorio de destino si no existe
# mkdir -p "$DESTINO"
# Fecha para el nombre del backup
FECHA=$(date +"%Y-%m-%d_%H-%M")
BACKUP="$DESTINO/pyfleet_$FECHA.db"
echo "$(date): Iniciando backup..." >> "$LOG"
# Comprobar que existe la base de datos
if [ ! -f "$ORIGEN" ]; then
echo "$(date): ERROR: No existe $ORIGEN" >> "$LOG"
exit 1
fi
if ! cp "$ORIGEN" "$BACKUP"; then
echo "$(date): ERROR: Falló el backup" >> "$LOG"
rm -f "$BACKUP"
exit 1
fi
# Comprobar resultado
if [ $? -ne 0 ] || [ ! -s "$BACKUP" ]; then
echo "$(date): ERROR: Falló el backup" >> "$LOG"
rm -f "$BACKUP"
exit 1
fi
echo "$(date): Backup creado: $BACKUP" >> "$LOG"
# Mantener solamente las 3 copias más recientes
ls -1t "$DESTINO"/pyfleet_*.db 2>/dev/null | tail -n +4 | xargs -r rm -f
echo "$(date): Limpieza completada. Se mantienen las 3 últimas copias." >> "$LOG"
#Dar permisos al script
#sudo chmod +x /home/informatica/docker/pyfleet/backup_fleet.sh
#Probar manualmente
#sudo /home/informatica/docker/pyfleet/backup_pyfleet.sh
#Comprobar backup
#ls -lh /mnt/backup/backup_mysql
#Crontab
#sudo crontab -e
#domingos a las 03:00
#0 3 * * 0 /usr/local/bin/backup_sqlite.sh
#Comprobar que esta programado
#sudo crontab -l
#corregir ejecucion
#file /home/informatica/docker/pyfleet/backup_fleet.sh
#Si aparece algo como:
#with CRLF line terminators
#ese es probablemente el problema.
#Corrígelo con:
#sudo sed -i 's/\r$//' /home/informatica/docker/pyfleet/backup_fleet.sh