backup_polidic.sh

Aquest script està fet en Bash (Bourne Again Shell), que és el llenguatge de scripting per defecte en la majoria de sistemes Linux/Unix, incloent-hi el Synology DSM.

backup_polidic.sh
==================
#!/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


# Llista de bases de dades a copiar (separades per espais)
DB_LIST=("polidic_por" "polidic_cat" "encara_una_mes")

DB_USER="root"
DB_PASS="B*********!"
BACKUP_DIR="/volume2/MySQL_backup/polidic"
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.gz"

    echo "Fent backup de la base de dades: $DB_NAME..."

    mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$FILE"

    if [ $? -eq 0 ]; then
        echo "Backup complet: $FILE"
    else
        echo "ERROR durant el backup de $DB_NAME"
    fi

done


comprovem:

ls -l /volume2/web/backup_polidic.sh
ls -l /volume2/web/backup_beseit.sh
sudo /usr/local/bin/backup_polidic.sh // executa el script
ls -l /usr/local/bin/backup_polidic.sh // comprova el directori i privilegis

Si l’escrip ja está instal·lat entrem:

1) Comprovar que pots entrar per SSH al Synology

Des de Windows obrim Powershell com administrador

PS C:\WINDOWS\system32> ssh urqtejmi@192.168.1.41
urqtejmi@192.168.1.41’s password:

Codi

ssh urqtejmi@192.168.1.41

Comprovar que l’script funciona manualment (opcional)

sudo /usr/local/bin/backup_polidic.sh

Elimina els retorn de carro:

sudo sed -i 's/\r$//' /usr/local/bin/backup_polidic.sh

dona permisos d’execució:

sudo chmod +x /usr/local/bin/backup_polidic.sh

✅ Per què Bash ÉS potent (Els seus superpoders)

  1. Accés directe al sistema operatiu:
    • Bash no és només un llenguatge; és una interfície directa amb el nucli de Linux. Pots controlar permisos, processos, xarxa, fitxers i dispositius amb una sola línia.
    • Exemple: find /volume2 -name "*.sql" -mtime +7 -delete (troba i esborra fitxers antics) és molt més directe que fer-ho en un llenguatge d’alt nivell.
  2. Composició amb “Pipes” (|):
    • La capacitat d’encadenar comandes és brutal. Pots agafar la sortida d’una eina i passar-la a una altra fàcilment.
    • El teu exemple: mysqldump ... | gzip > fitxer.sql.gz. Això fa un backup i el comprimeix al vol, sense crear fitxers temporals gegants.
  3. Portabilitat i Ubiquitat:
    • Bash (o sh compatible) existeix a gairebé qualsevol sistema Unix/Linux, des d’un router fins a un superordinador. Un script ben fet avui funcionarà d’aquí a 10 anys.
  4. Ideal per a “Glue Code” (Codi enganxina):
    • És perfecte per unir eines que ja existeixen. No necessites reinventar la roda; només cridar mysqldump, curl, ssh, rsync, etc., i coordinar-les.
  5. Lleuger i ràpid per a tasques simples:
    • No cal compilar res, ni instal·lar dependències pesades. Un fitxer de text amb permisos +x ja és un programa executable.


Perfecte, Miquel. Afegim aquest punt extra perquè és molt important per mantenir l’script net, segur i fàcil de mantenir. I ja que vols un resum escuet i consolidat, t’ho deixo tot plegat en un checklist compacte i molt operatiu.


✔️ CHECKLIST DEFINITIU PER CONSOLIDAR LA CONFIGURACIÓ

1) Comprovar que el servei SSH de Windows 11 està actiu

PowerShell (Administrador):

PS C:\WINDOWS\system32> Get-Service sshd

Get-Service sshd

Ha de sortir Running i Automatic.


2) Comprovar que el port 22 està obert al firewall de Windows

Get-NetFirewallRule -DisplayName "OpenSSH Server (TCP-In)"

Si no existeix, crear-lo.


3) Comprovar que pots entrar per SSH al Windows

Des d’un altre dispositiu:

ssh NOM_USUARI_WINDOWS@IP_DEL_WINDOWS

4) Comprovar que pots entrar per SSH al Synology

Des de Windows:

ssh urqtejmi@192.168.1.41

Si entres i veus el prompt del Synology, tot correcte.


5) Comprovar que l’script de backup existeix i és executable

Dins del Synology:

ls -l /usr/local/bin/backup_polidic.sh

Ha de sortir:

-rwx------ 1 root root ...

6) Comprovar que la carpeta de destinació existeix

ls -l /volume2/MySQL_backup/polidic

7) Comprovar que l’script funciona manualment (opcional)

sudo /usr/local/bin/backup_polidic.sh

8) IMPORTANT: fer modificacions a l’script sempre a la còpia de treball

Aquest és el punt que volies afegir, i és molt encertat.

Per modificar l’script, NO editar directament /usr/local/bin/backup_polidic.sh.

És millor editar la còpia de treball a:

/volume2/web/backup_polidic.sh

Perquè:

  • és una carpeta persistent i segura
  • és fàcil d’editar via File Station o via SSH
  • no es perd en actualitzacions del DSM
  • evita tocar directament /usr/local/bin, que és més delicat

Un cop fetes les modificacions, copiar-lo al seu lloc definitiu:


sudo cp /volume2/web/backup_polidic.sh /usr/local/bin/ && \
sudo sed -i 's/\r$//' /usr/local/bin/backup_polidic.sh && \
sudo chmod +x /usr/local/bin/backup_polidic.sh

sudo cp /volume2/web/backup_beseit.sh /usr/local/bin/ && \
sudo sed -i 's/\r$//' /usr/local/bin/backup_beseit.sh && \
sudo chmod +x /usr/local/bin/backup_beseit.sh

Això executa:

  1. copiar
  2. netejar CRLF
  3. donar permisos
sudo cp /volume2/web/backup_polidic.sh /usr/local/bin/
sudo chmod +x /usr/local/bin/backup_polidic.sh
sudo sed -i 's/\r$//' /usr/local/bin/backup_polidic.sh

Això garanteix:

  • que el fitxer és executable
  • que no té retorns de carro de Windows
  • que la versió final és neta i funcional

✔️ Amb aquests 8 punts tens la configuració completament consolidada

És un esquema simple, robust i fàcil de revisar sempre que calgui.

Si vols, puc preparar-te aquest checklist en format PDF, Markdown, o fins i tot com a script de comprovació automàtica al Synology.