Files
cloudpanel-backup/README.md

2.7 KiB

Script di Backup MySQL e htdocs

Script bash per eseguire il backup automatico di un database MySQL e della cartella del sito web.

Avvio rapido

git clone https://git.pyconetwork.it/francesco/cloudpanel-backup.git && cd cloudpanel-backup && chmod +x *.sh && ./init.sh

Configurazione

  1. Esegui lo script di inizializzazione:

    chmod +x init.sh
    ./init.sh
    
  2. Lo script ti chiederà:

    • Nome utente
    • Dominio del sito (es. esempio.com)
    • Host del database (default: localhost)
    • Nome del database
    • Utente del database (default: nome del database)
    • Password del database
  3. Il file .secret.UTENTE verrà creato automaticamente con le credenziali fornite.

  4. Rendi eseguibile lo script di backup:

    chmod +x core.sh
    

Utilizzo

Esegui lo script specificando utente e dominio:

./core.sh utente dominio

Esempio:

./core.sh myuser esempio.com

Configurazione su Webmin/Cron

  1. Scarica il progetto:

    cd /home/_UTENTE_/
    git clone https://git.pyconetwork.it/francesco/cloudpanel-backup.git
    cd cloudpanel-backup
    
  2. Configura con init.sh:

    chmod +x init.sh
    ./init.sh
    chmod +x core.sh
    
  3. Su cron manager inserisci:

    /home/UTENTE/cloudpanel-backup/backup.sh
    

    Oppure per un singolo sito:

    /home/UTENTE/cloudpanel-backup/core.sh UTENTE dominio.com
    

Funzionalità

  1. Esegue il dump del database MySQL specificato
  2. Copia la cartella /home/UTENTE/htdocs/DOMINIO
  3. Crea un archivio ZIP contenente database e file del sito
  4. (Opzionale) Trasferisce il backup su server remoto via HTTP
  5. (Opzionale) Invia notifiche via Gotify
  6. Pulisce i file temporanei
  7. Il file ZIP ha il formato: backup_DOMINIO_YYYYMMDD_HHMMSS.zip

Configurazione Gotify e Upload remoto

Le impostazioni di Gotify e dell'endpoint di upload sono centralizzate nel file core.sh e non nei file .secret.*. Per modificarle, edita direttamente core.sh:

# Gotify
GOTIFY_URL="https://alert.qwince.com/message"
GOTIFY_TOKEN="il_tuo_token"

# Upload HTTP endpoint
UPLOAD_URL="http://192.168.0.10:8080/upload"

Backup multiplo

Per eseguire il backup di tutti i siti configurati:

chmod +x backup.sh
./backup.sh

Lo script scopre automaticamente i siti dai file .secret.* presenti nella directory. Ogni file .secret.UTENTE contiene il DOMAIN associato, quindi non serve mantenere elenchi manuali.

Note di sicurezza

  • Il file .secret.UTENTE contiene credenziali sensibili
  • Assicurati che abbia permessi appropriati: chmod 600 .secret.*
  • Non versionare i file .secret.* su repository pubblici
  • Sono già inclusi nel .gitignore