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
-
Esegui lo script di inizializzazione:
chmod +x init.sh ./init.sh -
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
-
Il file
.secret.UTENTEverrà creato automaticamente con le credenziali fornite. -
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
-
Scarica il progetto:
cd /home/_UTENTE_/ git clone https://git.pyconetwork.it/francesco/cloudpanel-backup.git cd cloudpanel-backup -
Configura con init.sh:
chmod +x init.sh ./init.sh chmod +x core.sh -
Su cron manager inserisci:
/home/UTENTE/cloudpanel-backup/backup.shOppure per un singolo sito:
/home/UTENTE/cloudpanel-backup/core.sh UTENTE dominio.com
Funzionalità
- Esegue il dump del database MySQL specificato
- Copia la cartella
/home/UTENTE/htdocs/DOMINIO - Crea un archivio ZIP contenente database e file del sito
- (Opzionale) Trasferisce il backup su server remoto via HTTP
- (Opzionale) Invia notifiche via Gotify
- Pulisce i file temporanei
- 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.UTENTEcontiene credenziali sensibili - Assicurati che abbia permessi appropriati:
chmod 600 .secret.* - Non versionare i file
.secret.*su repository pubblici - Sono già inclusi nel
.gitignore