++ Aggiunta funzione di backup e aggiornamento README.md

This commit is contained in:
francesco
2026-04-21 13:24:54 +02:00
parent 255260c979
commit 2b51d7882c
4 changed files with 48 additions and 33 deletions

View File

@@ -1,5 +1,7 @@
# File di configurazione per le credenziali del database MySQL
# Rinominare questo file in .secret e inserire le credenziali reali
# File di configurazione per il backup
# Rinominare questo file in .secret.UTENTE e inserire i dati reali
DOMAIN=dominio.com
DB_HOST=localhost
DB_NAME=nome_database

View File

@@ -17,6 +17,7 @@ Script bash per eseguire il backup automatico di un database MySQL e della carte
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)
@@ -58,6 +59,11 @@ Esempio:
```
3. Su cron manager inserisci:
```bash
/home/UTENTE/cloudpanel-backup/backup.sh
```
Oppure per un singolo sito:
```bash
/home/UTENTE/cloudpanel-backup/core.sh UTENTE dominio.com
```
@@ -89,11 +95,12 @@ UPLOAD_URL="http://192.168.0.10:8080/upload"
Per eseguire il backup di tutti i siti configurati:
```bash
chmod +x backup-siti.sh
./backup-siti.sh
chmod +x backup.sh
./backup.sh
```
L'elenco dei siti è configurabile nell'array `SITES` dentro `backup-siti.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

View File

@@ -21,38 +21,29 @@ echo "Data: $(date '+%d-%m-%Y %H:%M:%S')"
echo "=========================================="
echo ""
# Array: "utente dominio"
SITES=(
"associazionecoach associazionecoach.com"
"qwince-adam adam.qwince.com"
"ainormanni ainormanni.com"
"cathedralroomandloft cathedralroomandloft.com"
"gdmantincendio gdmantincendio.it"
"greeningtech greeningtech.com"
"qwince-mercurio mercurio.qwince.com"
"farmasfera-sso-test portale-test-farmasfera.qwince.com"
"professionalvalue professionalvalue.it"
"puntofarma puntofarma.online"
"teleconsulto-sanita sanita.teleconsulto.online"
"studiolegaletodaro studiolegaletodaro.it"
"termanager termanager.pyconetwork.it"
"qwince-webcalcio webcalcio.qwince.com"
"akashido www.akashido.it"
"skillforequity www.skillforequity.com"
"concura concura.online"
"qwince qwince.com"
# TODO: aggiungere utente mancante
# "UTENTE neuralya.marketing"
# "UTENTE longevity.concura.online"
)
# Scopri automaticamente i siti dai file .secret.*
TOTAL=0
SUCCESS=0
FAILED=0
for SITE in "${SITES[@]}"; do
USER=$(awk '{print $1}' <<< "$SITE")
DOMAIN=$(awk '{print $2}' <<< "$SITE")
for SECRET_FILE in "$SCRIPT_DIR"/.secret.*; do
# Ignora il file example
[ "$(basename "$SECRET_FILE")" = ".secret.example" ] && continue
[ ! -f "$SECRET_FILE" ] && continue
# Estrai lo username dal nome del file (.secret.USERNAME)
USER=$(basename "$SECRET_FILE" | sed 's/^\.secret\.//')
# Leggi il DOMAIN dal file
DOMAIN=$(grep -m1 '^DOMAIN=' "$SECRET_FILE" | cut -d'=' -f2-)
if [ -z "$DOMAIN" ]; then
echo "⚠️ DOMAIN mancante in $SECRET_FILE, saltato"
FAILED=$((FAILED + 1))
TOTAL=$((TOTAL + 1))
echo ""
continue
fi
TOTAL=$((TOTAL + 1))
@@ -71,6 +62,11 @@ for SITE in "${SITES[@]}"; do
echo ""
done
if [ $TOTAL -eq 0 ]; then
echo "Nessun file .secret.* trovato in $SCRIPT_DIR"
echo "Esegui ./init.sh per configurare un sito"
fi
echo "=========================================="
echo "Backup terminato"
echo "Totale: $TOTAL | Riusciti: $SUCCESS | Falliti: $FAILED"

10
init.sh
View File

@@ -15,6 +15,14 @@ if [ -z "$USERNAME" ]; then
exit 1
fi
# Richiedi dominio
read -p "Inserisci il dominio (es. esempio.com): " DOMAIN
if [ -z "$DOMAIN" ]; then
echo "Errore: Dominio non può essere vuoto"
exit 1
fi
echo ""
echo "Configurazione database:"
echo "------------------------"
@@ -67,6 +75,7 @@ fi
cp "$EXAMPLE_FILE" "$SECRET_FILE"
# Sostituisci i valori nel file
sed -i "s/^DOMAIN=.*/DOMAIN=$DOMAIN/" "$SECRET_FILE"
sed -i "s/^DB_HOST=.*/DB_HOST=$DB_HOST/" "$SECRET_FILE"
sed -i "s/^DB_NAME=.*/DB_NAME=$DB_NAME/" "$SECRET_FILE"
sed -i "s/^DB_USER=.*/DB_USER=$DB_USER/" "$SECRET_FILE"
@@ -78,6 +87,7 @@ echo "File $SECRET_FILE creato con successo!"
echo "=========================================="
echo ""
echo "Configurazione salvata:"
echo " - Dominio: $DOMAIN"
echo " - Host: $DB_HOST"
echo " - Database: $DB_NAME"
echo " - Utente: $DB_USER"