Backup di MySQL tramite script: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
Nessun oggetto della modifica
(16 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie|Stretch}}
== Introduzione ==
== Introduzione ==
Attraverso lo script riportato di seguito è possibile effettuare il backup di tutti i database presenti nella nostra installazione di MySQL. Lo script (basato sull'originale presente su: http://bash.cyberciti.biz/) permette la personalizzazione attraverso i parametri:
Attraverso lo [[script]] riportato di seguito è possibile effettuare il backup di tutti i database presenti nella nostra installazione di MySQL. Lo script (basato sull'originale<sup>[[#Collegamenti esterni| [1]]]</sup> presente su cyberciti.biz<sup>[[#Collegamenti esterni| [2]]]</sup>) permette la personalizzazione attraverso i parametri:
<pre>
<pre>
MyUSER="utente_MySQL"    # USERNAME
MyUSER="utente_MySQL"    # USERNAME
Riga 27: Riga 27:
# This is a free shell script under GNU GPL version 2.0 or above
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2004, 2005 nixCraft project
# Copyright (C) 2004, 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# This script is part of nixCraft shell script collection (NSSC)
Riga 93: Riga 92:
done
done
</pre>
</pre>
Per non intasare il server e eliminare i backup vecchi è possibile mettere in <code>crontab</code> uno script simile al seguente, che cancella i file di backup più vecchi di sette giorni:
<pre>
find /backup/mysql -type f -mtime +7 -exec rm {} \;
</pre>
== Esecuzione automatica dello script ==
== Esecuzione automatica dello script ==
L'inserimento di questo script in una voce del vostro crontab (si veda ad esempio: http://guide.debianizzati.org/index.php/Utilizzo_del_servizio_di_scheduling_Cron) permette un backup automatizzato dei database di MySQL senza la necessità di interrompere il servizio.
L'inserimento di questo script in una voce del vostro crontab (si veda ad esempio [[Utilizzo_del_servizio_di_scheduling_Cron| la guida su Cron]]) permette un backup automatizzato dei database di MySQL senza la necessità di interrompere il servizio.


== Uno script alternativo ==
== Uno script alternativo ==
Riga 102: Riga 106:
#!/bin/bash
#!/bin/bash


FILE=/dove/voglio/backuppare/name.sql
FILE=/dove/voglio/backuppare/name_backup
NAME=inserire_utente_sql
NAME=utente_sql
PASS=inserire_password_sql
PASS=password_sql
DB=inserire_nome_DB
DB=nome_DB


echo "Content-type: text/plain"
echo "Content-type: text/plain"
Riga 111: Riga 115:
echo "Tried to export file: "$FILE
echo "Tried to export file: "$FILE


mysqldump --quote-names -u $NAME --password=$PASS $DB > $FILE
#eliminare il commmento a seconda del risultato che si vuole ottenere
#dump non compresso
#mysqldump --quote-names -u $NAME --password=$PASS $DB > $FILE.sql
 
#dump compresso con gzip
#mysqldump --quote-names -u $NAME --password=$PASS $DB| gzip -9 > $FILE.sql.gz


# tar zxvf backupfile.tgz (se compresso)
# sql nomedatabase < backupfile
</pre>
</pre>
Lo script permette il backup del database specificato nella variabile <code>DB</code>.<br/>
Lo script permette il backup del database specificato nella variabile <code>DB</code>.<br/>
L'inserimento di questo script in una voce del vostro crontab (si veda ad esempio: http://guide.debianizzati.org/index.php/Utilizzo_del_servizio_di_scheduling_Cron) permette un backup automatizzato dei database di MySQL senza la necessità di interrompere il servizio.
L'inserimento di questo script in una voce del vostro crontab (si veda ad esempio [[Utilizzo_del_servizio_di_scheduling_Cron|la guida su Cron]]) permette un backup automatizzato dei database di MySQL senza la necessità di interrompere il servizio.


<!-- Nascondo terzo script
== Un terzo script ==
== Un terzo script ==
Lo script seguente effettua il backup di tutti i database presenti sul server e imposta una rotazione che conserva gli ultimi 4 backup salvati.
Lo script seguente effettua il backup di tutti i database presenti sul server e imposta una rotazione che conserva gli ultimi 4 backup salvati.
Riga 126: Riga 134:


# Modify the following to suit your environment
# Modify the following to suit your environment
export DB_BACKUP=/home/user/mysql_backup”
export DB_BACKUP="/home/user/mysql_backup"
export DB_USER=”root”
export DB_USER="root"
export DB_PASSWD=***********
export DB_PASSWD="***********"
export DATE=”`date +”%d%b”`”
export DATE="'date +”%d%b"'"
export MYSQL=/usr/bin/mysql”
export MYSQL="/usr/bin/mysql"
export MYSQLDUMP=/usr/bin/mysqldump”
export MYSQLDUMP="/usr/bin/mysqldump"


# Backup part
# Backup part
echo “mySQL_backup”
echo "mySQL_backup"
echo “———————-
echo "———————-"
echo * Rotating backups…”
echo "* Rotating backups…"
rm -rf $DB_BACKUP/04
rm -rf $DB_BACKUP/04
mv $DB_BACKUP/03 $DB_BACKUP/04
mv $DB_BACKUP/03 $DB_BACKUP/04
Riga 143: Riga 151:
mkdir $DB_BACKUP/01
mkdir $DB_BACKUP/01
cd $DB_BACKUP/ && cd $DB_BACKUP/01
cd $DB_BACKUP/ && cd $DB_BACKUP/01
$MYSQL -u $DB_USER –password=$DB_PASSWD -Bse ‘show databases’ |while read m; \
$MYSQL -u $DB_USER –password=$DB_PASSWD -Bse 'show databases' |while read m; \
do $MYSQLDUMP -u $DB_USER –password=$DB_PASSWD `echo $m` > `echo $m`.sql;done
do $MYSQLDUMP -u $DB_USER –password=$DB_PASSWD 'echo $m' > 'echo $m'.sql;done
bzip2 *sql
bzip2 *sql


echo * Creating new backup…”
echo "* Creating new backup…"
echo “Backup done! `date`” > /tmp/my_report.log
echo "Backup done! 'date'" > /tmp/my_report.log


# You can set the script to send you mail when backup it’s finished.
# You can set the script to send you mail when backup it’s finished.
mail -s “MySql Backup report” you@yourmail.com < /tmp/my_report.log
mail -s "MySql Backup report" you@yourmail.com < /tmp/my_report.log
echo "----------------------"
echo "----------------------"
echo "Done"
echo "Done"
exit 0
exit 0
</pre>
</pre>
-->


== Backup manuale ==
== Backup manuale ==
Riga 180: Riga 189:
<pre>
<pre>
# mysql -u [username] -p [database_name] < [backup_file].dump
# mysql -u [username] -p [database_name] < [backup_file].dump
</pre>
Oppure con la sequenza:
<pre>
# mysql -u root -p
Enter Password
mysql> use database_name
Database changed
mysql> source [backup_file].dump
</pre>
</pre>


Riga 186: Riga 203:
[[Backup di MySQL tramite script]]<br>
[[Backup di MySQL tramite script]]<br>
[[Configurare MySQL per accettare connessioni remote]]<br>
[[Configurare MySQL per accettare connessioni remote]]<br>
<br/>
 
: [[Utente:Ferdybassi|Ferdybassi]]
== Collegamenti esterni ==
----
[1] [http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/  script originale]<br/>
[2] [http://bash.cyberciti.biz/ bash.cybercity.biz]
 
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]]
|Estesa_da =
: [[Utente:Mm-barabba|Mm-barabba]]
}}
 
[[Categoria:Bash Scripting]]
[[Categoria:Bash Scripting]]
[[Categoria:Database server]]
[[Categoria:Database server]]
[[Categoria:Backup&restore]]
[[Categoria:Backup&restore]]

Menu di navigazione