104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# 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
|
|
```bash
|
|
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:
|
|
```bash
|
|
chmod +x init.sh
|
|
./init.sh
|
|
```
|
|
|
|
2. Lo script ti chiederà:
|
|
- Nome utente
|
|
- 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:
|
|
```bash
|
|
chmod +x core.sh
|
|
```
|
|
|
|
## Utilizzo
|
|
|
|
Esegui lo script specificando utente e dominio:
|
|
```bash
|
|
./core.sh utente dominio
|
|
```
|
|
|
|
Esempio:
|
|
```bash
|
|
./core.sh myuser esempio.com
|
|
```
|
|
|
|
## Configurazione su Webmin/Cron
|
|
|
|
1. Scarica il progetto:
|
|
```bash
|
|
cd /home/_UTENTE_/
|
|
git clone https://git.pyconetwork.it/francesco/cloudpanel-backup.git
|
|
cd cloudpanel-backup
|
|
```
|
|
|
|
2. Configura con init.sh:
|
|
```bash
|
|
chmod +x init.sh
|
|
./init.sh
|
|
chmod +x core.sh
|
|
```
|
|
|
|
3. Su cron manager inserisci:
|
|
```bash
|
|
/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`:
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
chmod +x backup-siti.sh
|
|
./backup-siti.sh
|
|
```
|
|
|
|
L'elenco dei siti è configurabile nell'array `SITES` dentro `backup-siti.sh`.
|
|
|
|
## 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`
|