Backup MySQL

Da Linux, per eseguire il backup di MySQL, il modo più semplice è mysqldump

mysqldump --opt -u root -p dbMain >nomefile.dump

successivamente si può eseguire una copia remota utilizzando curl (curl.haxx.se/docs/manual.html)

curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile

Di seguito uno script bash completo
Esempio backup.sh

 
#!/bin/sh
DATE=`/bin/date +%Y%m%d%H%M%S`
RIFERIMENTO=MySQL180
echo "Cancella vecchi backup ...."
rm *.$RIFERIMENTO.tar.gz
#find /root -type f -name "*.tar.gz" -mtime +1 -exec rm {} \;
DATABASE_LIST=`mysql --user=myuser --password=mypass --skip-column-names --execute="show databases"`
echo "Creata lista databases...."
for i in $DATABASE_LIST; do
echo "Elaborazione database $i ...."
	if [ $i != "information_schema" ] && [ $i != "mysql" ] && [ $i != "performance_schema" ] ; then
	mysqldump --user=myuser --password=mypass --databases $i > $i.sql
	fi
done
   /bin/tar -pzcf $DATE.$RIFERIMENTO.tar.gz *.sql
   curl -T $DATE.$RIFERIMENTO.tar.gz -u backup:ftppass ftp://myNAS/Backups/Server/db/$DATE.$RIFERIMENTO.tar.gz.zip
rm *.sql
echo "Backup ultimato"

Copiare lo script su /root ed eseguire chmod 700