diff --git a/README.md b/README.md index b66f4d4..bd06a32 100644 --- a/README.md +++ b/README.md @@ -2,75 +2,81 @@ Script bash per eseguire il backup automatico di un database MySQL e della cartella del sito web. +## Avvio rapido + ## Configurazione -1. Crea il file `.secret` nella stessa cartella dello script: +1. Esegui lo script di inizializzazione: ```bash - cp .secret.example .secret + chmod +x init.sh + ./init.sh ``` -2. Modifica il file `.secret` con le tue credenziali: +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. (Opzionale) Modifica il file per configurare Gotify e upload remoto: ```bash - DB_HOST=localhost - DB_NAME=nome_del_tuo_database - DB_USER=tuo_utente - DB_PASS=tua_password + nano .secret.UTENTE ``` -3. Rendi eseguibile lo script: +5. Rendi eseguibile lo script di backup: ```bash chmod +x backup.sh ``` ## Utilizzo -Esegui lo script specificando il dominio come parametro: +Esegui lo script specificando utente e dominio: ```bash -./backup.sh nome_dominio +./backup.sh utente dominio ``` Esempio: ```bash -./backup.sh esempio.com +./backup.sh myuser esempio.com ``` -## !!!!!!WEBMIN!!!!!! -Scaricare il progetto da https://git.pyconetwork.it/francesco/cloudpanel-backup.git -```bash -cd /home/_UTENTE_/cloudpanel-backup -cp .secret.example .secret --- Personalizzare le credenziali del DB -chmod +x backup.sh -``` -Su cron manager inserisci la seguente stringa che deve essere -```bash -/home/$(whoami)/cloudpanel-backup/backup.sh nome_dominio -``` +## Configurazione su Webmin/Cron -## Cosa fa lo script +1. Scarica il progetto: + ```bash + cd /home/_UTENTE_/ + git clone https://git.pyconetwork.it/francesco/cloudpanel-backup.git + cd cloudpanel-backup + ``` -1. Accetta il dominio come parametro da riga di comando -2. Legge le credenziali dal file `.secret` -3. Esegue il dump del database MySQL specificato -4. Copia la cartella `/home/utente_DOMINIO/htdocs/DOMINIO` -5. Crea un archivio ZIP contenente: - - Dump del database (formato .sql) - - Copia completa della cartella htdocs -6. Il file ZIP finale ha il formato: `backup_DOMINIO_YYYYMMDD_HHMMSS.zip` -7. Pulisce i file temporanei +2. Configura con init.sh: + ```bash + chmod +x init.sh + ./init.sh + chmod +x backup.sh + ``` + +3. Su cron manager inserisci: + ```bash + /home/UTENTE/cloudpanel-backup/backup.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 +5. (Opzionale) Invia notifiche via Gotify +6. Pulisce i file temporanei +7. Il file ZIP ha il formato: `backup_DOMINIO_YYYYMMDD_HHMMSS.zip` ## Note di sicurezza -- Il file `.secret` contiene credenziali sensibili -- Assicurati che abbia permessi appropriati: `chmod 600 .secret` -- Non versionare il file `.secret` su repository pubblici -- Aggiungi `.secret` al tuo `.gitignore` - -## Percorso delle cartelle - -Lo script costruisce automaticamente il percorso basandosi sul dominio fornito: -- Utente: `utente_DOMINIO` -- Percorso: `/home/utente_DOMINIO/htdocs/DOMINIO` - -Esempio per il dominio `esempio.com`: -- Percorso completo: `/home/utente_esempio.com/htdocs/esempio.com` +- 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`