++ Aggiunta funzione di backup e aggiornamento README.md
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
# File di configurazione per le credenziali del database MySQL
|
# File di configurazione per il backup
|
||||||
# Rinominare questo file in .secret e inserire le credenziali reali
|
# Rinominare questo file in .secret.UTENTE e inserire i dati reali
|
||||||
|
|
||||||
|
DOMAIN=dominio.com
|
||||||
|
|
||||||
DB_HOST=localhost
|
DB_HOST=localhost
|
||||||
DB_NAME=nome_database
|
DB_NAME=nome_database
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -17,6 +17,7 @@ Script bash per eseguire il backup automatico di un database MySQL e della carte
|
|||||||
|
|
||||||
2. Lo script ti chiederà:
|
2. Lo script ti chiederà:
|
||||||
- Nome utente
|
- Nome utente
|
||||||
|
- Dominio del sito (es. esempio.com)
|
||||||
- Host del database (default: localhost)
|
- Host del database (default: localhost)
|
||||||
- Nome del database
|
- Nome del database
|
||||||
- Utente del database (default: nome del database)
|
- Utente del database (default: nome del database)
|
||||||
@@ -58,6 +59,11 @@ Esempio:
|
|||||||
```
|
```
|
||||||
|
|
||||||
3. Su cron manager inserisci:
|
3. Su cron manager inserisci:
|
||||||
|
```bash
|
||||||
|
/home/UTENTE/cloudpanel-backup/backup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Oppure per un singolo sito:
|
||||||
```bash
|
```bash
|
||||||
/home/UTENTE/cloudpanel-backup/core.sh UTENTE dominio.com
|
/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:
|
Per eseguire il backup di tutti i siti configurati:
|
||||||
```bash
|
```bash
|
||||||
chmod +x backup-siti.sh
|
chmod +x backup.sh
|
||||||
./backup-siti.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
|
## Note di sicurezza
|
||||||
|
|
||||||
|
|||||||
52
backup.sh
52
backup.sh
@@ -21,38 +21,29 @@ echo "Data: $(date '+%d-%m-%Y %H:%M:%S')"
|
|||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Array: "utente dominio"
|
# Scopri automaticamente i siti dai file .secret.*
|
||||||
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"
|
|
||||||
)
|
|
||||||
|
|
||||||
TOTAL=0
|
TOTAL=0
|
||||||
SUCCESS=0
|
SUCCESS=0
|
||||||
FAILED=0
|
FAILED=0
|
||||||
|
|
||||||
for SITE in "${SITES[@]}"; do
|
for SECRET_FILE in "$SCRIPT_DIR"/.secret.*; do
|
||||||
USER=$(awk '{print $1}' <<< "$SITE")
|
# Ignora il file example
|
||||||
DOMAIN=$(awk '{print $2}' <<< "$SITE")
|
[ "$(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))
|
TOTAL=$((TOTAL + 1))
|
||||||
|
|
||||||
@@ -71,6 +62,11 @@ for SITE in "${SITES[@]}"; do
|
|||||||
echo ""
|
echo ""
|
||||||
done
|
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 "=========================================="
|
||||||
echo "Backup terminato"
|
echo "Backup terminato"
|
||||||
echo "Totale: $TOTAL | Riusciti: $SUCCESS | Falliti: $FAILED"
|
echo "Totale: $TOTAL | Riusciti: $SUCCESS | Falliti: $FAILED"
|
||||||
|
|||||||
10
init.sh
10
init.sh
@@ -15,6 +15,14 @@ if [ -z "$USERNAME" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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 ""
|
||||||
echo "Configurazione database:"
|
echo "Configurazione database:"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
@@ -67,6 +75,7 @@ fi
|
|||||||
cp "$EXAMPLE_FILE" "$SECRET_FILE"
|
cp "$EXAMPLE_FILE" "$SECRET_FILE"
|
||||||
|
|
||||||
# Sostituisci i valori nel 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_HOST=.*/DB_HOST=$DB_HOST/" "$SECRET_FILE"
|
||||||
sed -i "s/^DB_NAME=.*/DB_NAME=$DB_NAME/" "$SECRET_FILE"
|
sed -i "s/^DB_NAME=.*/DB_NAME=$DB_NAME/" "$SECRET_FILE"
|
||||||
sed -i "s/^DB_USER=.*/DB_USER=$DB_USER/" "$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 ""
|
echo ""
|
||||||
echo "Configurazione salvata:"
|
echo "Configurazione salvata:"
|
||||||
|
echo " - Dominio: $DOMAIN"
|
||||||
echo " - Host: $DB_HOST"
|
echo " - Host: $DB_HOST"
|
||||||
echo " - Database: $DB_NAME"
|
echo " - Database: $DB_NAME"
|
||||||
echo " - Utente: $DB_USER"
|
echo " - Utente: $DB_USER"
|
||||||
|
|||||||
Reference in New Issue
Block a user