4 069
contributi
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 | 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 | ||
# ------------------------------------------------------------------------- | # ------------------------------------------------------------------------- | ||
# 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 | 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/ | FILE=/dove/voglio/backuppare/name_backup | ||
NAME= | NAME=utente_sql | ||
PASS= | PASS=password_sql | ||
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 | |||
</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 | 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= | export DB_BACKUP="/home/user/mysql_backup" | ||
export DB_USER= | export DB_USER="root" | ||
export DB_PASSWD= | export DB_PASSWD="***********" | ||
export DATE= | export DATE="'date +”%d%b"'" | ||
export MYSQL= | export MYSQL="/usr/bin/mysql" | ||
export MYSQLDUMP= | export MYSQLDUMP="/usr/bin/mysqldump" | ||
# Backup part | # Backup part | ||
echo | echo "mySQL_backup" | ||
echo | echo "———————-" | ||
echo | 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 | $MYSQL -u $DB_USER –password=$DB_PASSWD -Bse 'show databases' |while read m; \ | ||
do $MYSQLDUMP -u $DB_USER –password=$DB_PASSWD | do $MYSQLDUMP -u $DB_USER –password=$DB_PASSWD 'echo $m' > 'echo $m'.sql;done | ||
bzip2 *sql | bzip2 *sql | ||
echo | echo "* Creating new backup…" | ||
echo | 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 | 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]] |