++ 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
|
||||
# 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
|
||||
|
||||
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à:
|
||||
- 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
|
||||
|
||||
|
||||
52
backup.sh
52
backup.sh
@@ -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
10
init.sh
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user