#!/bin/bash# Description: backup mysql data# Author: leeFILE="mysql_`date +%F`"BACKDIR="/mysqlbackup"CONF_FILE="/etc/my.cnf"mysql -uroot -e "show databases"|egrep -v "Database|information_schema|performance_schema" |xargs mysqldump -uroot --databases > $BACKDIR/$FILE.sql && cp $CONF_FILE $BACKDIR/$FILE.cnf && echo -e "Machine: Oracle IP: 172.16.10.12 Status: MySQL is backup complete" | mail -s "MySQL BackUP Complete" lee@126.com下图的代码看的更清楚写。
下面给大家介绍下MySQL使用mysqldump备份数据库时排除指定表
#!/bin/shfor j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`docase $j inmo_log|mt_log|report_info):;;*)mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sqlesacdone>>表名不固定 #!/bin/shfor j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`dofor i in "$@"doif [ $j != $i ];thenmysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sqlfidonedone>>更简洁的方法#!/bin/shfor j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`doecho $@ | grep -wq "<$j>"if [ $? -ne 0 ];thenmysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sqlfidone>>使用方法sh exclude.sh mo_log mt_log report_log#定义一个shell数组tables=(mo_log mt_log report_log)sh exclude.sh ${tables[@]}