64 lines
1.6 KiB
Bash
Executable File
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
|