TuguLab

Lo spazio delle idee del Tugurio
  • rss
  • Home
  • About
  • Termini Legali
  • Contact

Backup automatico in MySql

jollyr0ger | January 4, 2008 | 7:28 pm
Un piccolo script per chi è pigro come me e non ha voglia di fare manualmente il backup!

mysql

Questo script può essere utile a un web server per fare un backup giornaliero oppure a quelli come me che preferiscono affidare tutto all’affidabilità di uno script!

Per fare tutto ciò utilizzo bash, crontab e la funzione mysqldump fornita con i pacchetti ufficiali di mysql. La sua sintassi è molto semplice:

mysqldump [nome database] -u [utente] > [nomefile]

Nel primo parametro bisogna specificare il nome del datadase di cui si vuole fare il backup, con il parametro -u specifichiamo l’utente con cui ci connettiamo nel nostro caso root. Il simbolo maggiore (>) trasferisce tutto l’output testuale nel file specificato. La funzione non genera un backup binario ma una serie di comandi SQL che sono in grado di ricreare la struttura del database.

Ecco il codice bash:
#!/bin/bash
database="mysql"
percorso="/Mysql_backup"
if [ "$database" = "" ] || [ "$percorso" = "" ]; then
echo "Parametro mancante impossibile continuare!"
exit
fi
#controllo esistenza della cartella
if test -d $percorso/$database/
then
# la directory esiste
echo "La directory "$database" esiste!"
else
echo "Creo la directory "$database
mkdir $percorso/$database/
fi
#controllo se il file esiste gia...
if test -f $percorso/$database/$database"_backup_del_`date +%d_%m_%Y-ore_%k_%M`.sql"
then
# errore il file esiste
echo "Impossibile eseguire il backup! Questo file esiste già!"
exit
else
# il file non esiste quindieseguo il baskup
echo "Eseguo il backup"
mysqldump $database -u root > $percorso/$database/$database"_backup_del_`date +%d_%m_%Y-ore_%k_%M`.sql"
fi

Un po’ di righe per controllare che non esista già un file con lo stesso nome e i parametri passati. Apriamo un editor di testo e incolliamoci dentro il codice, modifichiamo secondo le nostre esigenze le due variabili: la prima indica il nome del database la seconda il nome del percorso in cui salvare il file. Salviamo dunque il file come: “backup.sh” sul desktop. Con i privilegi di root creiamo una cartella nel file-sistem la chiameremo Mysql_backup, copiamo all’interno il file bash e diamogli i permessi di esecuzione:

sudo mkdir /Mysql_backup
sudo cp /home/marco/Desktop/backup.sh /Mysql_backup/
sudo chmod +x /Mysql_backup/backup.sh

Crontab è uno strumento molto interessante, è installato di default su tutte le distro, serve per eseguire un determinato comando a una data ora. Apriamo il terminale e scriviamo:

sudo crontab -e

I primi cinque campi su ogni riga specificano con che frequenza e quando eseguire un comando mentre l’ultimo e il percorso del file che dobbiamo eseguire. Ecco alcuni esempi:

‘min’ ‘ora’ ‘Giorno del mese’ ‘mese’ ‘giorno della settimana’ comando da eseguire

  • Per un backup giornaliero: 00 20 * * * /Mysql_backup/backup.sh
  • Per un backup settimanale: 00 20 * * 7 /Mysql_backup/backup.sh
  • Per un backup mensile: 00 20 1 * * /Mysql_backup/backup.sh
Crontab

Salviamo con la combinazione di tasti Ctrl+O e usciamo Ctrl+X. Scriviamo ora sulla Shell:

sudo crontab -l

Se tutto è andato bene dovrebbe comparire la riga che avete scritto precedentemente su crontab questo significa che funziona correttamente!Bravi!

Ho strutturato lo script in modo che organizzi i file in cartelle, su ogni file è scritta l’ora e il nome del database. E’ possibile recuperare un backup con il seguente comando partendo da un installazione priva di dati (notare il simbolo minore!):

mysql [nome database] -u [utente] < [nomefile]

Fonti:

  • http://www.pluto.it/files/ildp/guide/abs/index.html
  • http://www.infomedialab.com/index.php?option=com_content&task=view&Itemid=9&id=20
  • http://it.wikipedia.org/wiki/Crontab

Post correlati

  • How-To: Server LAMP su Ubuntu con un 1 click
  • Notebook ultraportabile, prestante e non caro: CERCASI
  • Come configurare un mouse a più tasti
  • Mappano Open Days: questa sabato e domenica (Zona Torino)
  • Guida definitiva per emulare Openmoko e l’ASU
Categories
GNU/Linux, Guide, How-To, Programmazione, Ubuntu
Tags
automatico, backup, bash, crontab, datadase, linux, mysql, mysqldump, sql
Comments rss
Comments rss
Trackback
Trackback

« About me, the jollyr0ger Differenze installazione software su GNU/Linux e Windows »

4 responses

bello!!!!!!

nikaflow | March 27, 2008 | 6:41 pm

bello!!!!!!

Complimenti, un ottimo lavoro da cui sto prendendo spunto per il

Antonio | March 28, 2008 | 1:50 pm

Complimenti,
un ottimo lavoro da cui sto prendendo spunto per il mio backup.
Grazie spero di poter ricambiare un giorno!

Antonio Angrisani

Grazie ragazzi per i complimenti! Mi fa piacere sapere di

markus2889 | March 28, 2008 | 2:54 pm

Grazie ragazzi per i complimenti! Mi fa piacere sapere di essere utile per qualcuno! ;)

Semplice, chiaro efficace ...e già pronto =) ! grazie mille.

Lorenzo | April 16, 2008 | 3:46 pm

Semplice, chiaro efficace …e già pronto =) !

grazie mille.

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


 Iscriviti ai Feed!

Categories

  • Eventi
  • GNU/Linux
    • Ubuntu
  • Guide
    • How-To
  • Libri
  • Migliorare Ubuntu+1
  • Openmoko
    • Neo Freerunner
  • opensource
  • Progetti
  • Programmazione
    • C/C++
    • Geany
    • Iniziare-a-programmare
    • Php
  • Sicurezza
    • Crypt
  • Software
    • Installare
  • StoryBoard
    • jollyr0ger
  • Sviluppo web
  • Uncategorized
  • Università
  • Varie
  • Varietà informatico
  • Web2.0
    • SecretCities

Blogroll

  • Brunozzi
  • Club del Libro
  • Ercolinux
  • Facciosnao
  • Futuro prossimo
  • Intruders TV
  • Italian webdesign
  • OSSblog
  • Planet Openmoko
  • Pollycoke
  • Story of Stuff
  • Ubuntista
  • Where the Hell is Matt?

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Recent Comments

  • Notizie dai blog su How To Install BIKA LIMS Inkosi On Ubuntu Server In 15 Minutes on How-To: Server LAMP su Ubuntu con un 1 click
  • Pagoman on Cominciamo ad utilizzare il nostro FreeRunner Openmoko FDOM sul serio!!
  • granago on Vendo Openmoko Freerunner a Torino
  • jollyr0ger on Migliorare Ubuntu+1: il menù di avvio
  • Steve on Migliorare Ubuntu+1: il menù di avvio

Buttons


linuxfeed Spread
eXplicatum - Aggregatore online di Notizie / Blog / Flussi RSS
View blog authority

BlogItalia.it - La directory italiana dei blog
Aggregato su SocialBlog

Computer Blogs - BlogCatalog Blog Directory
Computers
Top Blogs
Page Rank Check

Locations of visitors to this page
Free Blogger

Sign for No alla rettifica per tutti i "siti informatici"

My Buzz Monitor

Tags

1973 abaco abacocomputers aggiornare ASU better brainstorm cercasi come configurare days debian FreeRunner getting GNU/Linux grub guida howto improve iniziare Installare linux list manuale mappano menu moko mysql Neo open Openmoko opensource Software source start started startup sviluppo talk torino Ubuntu ubuntu+1 up veloce web
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox