exemplo no crontab diariamente as 23:50
50 23 * * * /scripts/backup_mysql.sh
como root no mysql de permissao de leitura p/ o usuario backup_operator
GRANT ALL ON *.* TO 'backup_operator'@'localhost'
#!/bin/sh # Script to backup mysql databases # Create a complete bkp with all databses and a separated for each one # Author: Mario Cezzare mcezzare@gmail.com # last update on Wed Dec 29 16:24:11 on ttys005 x=`date '+BACKUP-%d.%m.%y'` now=`date '+%d.%m.%y %H:%M:%S'` separator="-----------------------------------" path_backup=/backup/mysql/ notify="sysadmin@email.com.br" cd $path_backup mkdir $x path_backup="$path_backup/$x" echo $x ################################################################################## # PART 1 - LOGS ################################################################################## echo " starting at $x $now" >> $path_backup/mysql_databases-$x.log echo $separator MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" MYSQLUSER="backup_operator" MYSQLPASSWD="senha_do_backup_operator" MYSQLHOST="localhost" GZIP="$(which gzip)" ################################################################################## # PART 2 - ALL DATA ################################################################################## echo "backup of mysql databases " mysqldump --all-databases -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASSWD | gzip -c > $path_backup/backup-all-mysql-$x.mysql.gz ################################################################################## # PART 3 - EACH ONE ################################################################################## DBS="$($MYSQL -u $MYSQLUSER -h $MYSQLHOST -p$MYSQLPASSWD -Bse 'show databases')" for db in $DBS ; do echo "backing up $db" FILE="mysql_$db-$x.mysql.gz" $MYSQLDUMP -u $MYSQLUSER -h $MYSQLHOST -p$MYSQLPASSWD $db | $GZIP -c > $path_backup/$FILE now=`date '+%d.%m.%y %H:%M:%S'` echo " $db at $x $now" >> $path_backup/mysql_databases-$x.log done ################################################################################## # PART 3 - EACH ONE ################################################################################## now=`date '+%d.%m.%y %H:%M:%S'` echo " ending at $x $now" >> $path_backup/mysql_databases-$x.log ################################################################################## # PART 4 - NOTIFICATIONS ################################################################################## ls -aloh $path_backup | mail -s BACKUP_MYSQL_DATABASES $notify
Nenhum comentário:
Postar um comentário