ANom de l’script:
backup_beseit.sh
Què fa:
Aquest script de Bash automatitza la còpia de seguretat (backup) de cinc bases de dades MySQL concretes: beseit, eng, eng_gram, bank i encara_una_mes.
Per a cada base de dades, genera un fitxer .sql independent amb un segell de data i hora al nom (per exemple: beseit_2026-09-08_10-00.sql), evitant així la sobreescriptura de còpies anteriors. Els fitxers es desen a la carpeta /volume2/MySQL_backup/MySQL_beseit.
L’script inclou comprovacions de seguretat prèvies: verifica que la carpeta de destí existeix i comprova la disponibilitat de cada base de dades abans d’intentar-ne la còpia, garantint un procés robust i sense interrupcions.
On està ubicat:
Al sistema de fitxers del servidor NAS Synology, concretament a la ruta:/usr/local/bin/backup_beseit.sh
Com es llança:
- Manualment (via terminal/SSH):
Connectant-se al Synology i executant:sudo /usr/local/bin/backup_beseit.sh - Automàticament:
Configurada com una tasca programada al Planificador de tasques del Panell de Control del DSM (Synology), executant-se amb privilegis d’usuariroota la data i hora programades, independentment de si l’ordinador personal està encès o apagat.
Visualitzar.
Entrar al synology: Miquel@Miquel-PC:~$ ssh usuari@192.168.1.41
llistar:
urqtejmi@synology_vall:~$ sudo cat /usr/local/bin/backup_beseit.sh
Password:
Sorry, try again.
Password:
#!/bin/bash
sudo chmod +x /usr/local/bin/backup_polidic.sh
sudo cp /volume2/web/backup_polidic.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/backup_polidic.sh //executa
sudo sed -i ‘s/\r$//’ /usr/local/bin/backup_polidic.sh –> ELIMINA ELS RETORN DE CARRO
sudo chmod +x /usr/local/bin/backup_polidic.sh –> COMPROVA QUE SEGUEIX SENT EXECUTABLE
#!/bin/bash
Llista de bases de dades a copiar
DB_LIST=(«beseit» «eng» «eng_gram» «bank» «encara_una_mes»)
DB_USER=
DB_PASS=
BACKUP_DIR=»/volume2/MySQL_backup/MySQL_beseit»
DATE=$(date +»%Y-%m-%d_%H-%M»)
Comprovar que la carpeta existeix
if [ ! -d «$BACKUP_DIR» ]; then
echo «ERROR: El directori $BACKUP_DIR no existeix.»
exit 1
fi
Bucle per cada base de dades
for DB_NAME in «${DB_LIST[@]}»; do
FILE=»$BACKUP_DIR/${DB_NAME}_$DATE.sql»
echo "Fent backup de la base de dades: $DB_NAME..."
# Comprovar si la base de dades existeix
if ! mysql -u"$DB_USER" -p"$DB_PASS" -e "USE $DB_NAME" 2>/dev/null; then
echo "⚠ La base de dades $DB_NAME NO existeix. Saltant..."
continue
fi
# Fer el backup
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$FILE"
if [ $? -eq 0 ]; then
echo "Backup complet: $FILE"
else
echo "❌ ERROR durant el backup de $DB_NAME"
fi
done
urqtejmi@synology_vall:~$