天天看点

mysql 备份脚本以及定时任务

  数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记。

(1)分库备份脚本

<code>#/bin/sh</code>

<code>#version 0.1</code>

<code>MYUSER=root</code>

<code>MYPASS=123123</code>

<code>#SOCKET=/data/3306/mysql.sock</code>

<code>MYLOGIN=</code><code>"mysql -u$MYUSER -p$MYPASS "</code>

<code>MYDUMP=</code><code>"mysqldump -u$MYUSER -p$MYPASS  -B"</code>

<code>DATABASE=</code><code>"$($MYLOGIN -e "</code><code>show databases;</code><code>"|egrep -vi "</code><code>Data|_schema|mysql</code><code>")"</code>

<code>for</code> <code>dbname </code><code>in</code> <code>$DATABASE</code>

<code>  </code><code>do</code>

<code>   </code><code>MYDIR=</code><code>/server/backup/</code><code>$dbname</code>

<code>   </code><code>[ ! -d $MYDIR ] &amp;&amp; </code><code>mkdir</code> <code>-p $MYDIR</code>

<code> </code><code>$MYDUMP $dbname|</code><code>gzip</code> <code>&gt;$MYDIR/${dbname}_$(</code><code>date</code> <code>+%F).sql.gz</code>

<code> </code><code>done</code>

(2)分库分表备份脚本:

<code>PASSWD=123123</code>

<code>MYLOGIN=</code><code>"mysql -u$USER -p$PASSWD "</code>

<code>MYDUMP=</code><code>"mysqldump -u$USER -p$PASSWD "</code>

<code>DATEBASE=</code><code>"$($MYLOGIN -e "</code><code>show databases;</code><code>"|egrep -vi "</code><code>Data|_schema|mysql</code><code>")"</code>

<code>for</code> <code>dbname </code><code>in</code> <code>$DATEBASE</code>

<code>do</code>

<code> </code><code>TABLE=</code><code>"$($MYLOGIN -e "</code><code>use $dbname;show tables;</code><code>"|sed '1d')"</code>

<code>  </code><code>for</code> <code>tname </code><code>in</code> <code>$TABLE</code>

<code>   </code><code>do</code>

<code>MYDIR=</code><code>/server/backup/</code><code>$dbname/${dbname}_$(</code><code>date</code> <code>+%F)</code>

<code>     </code><code>[ ! -d $MYDIR ] &amp;&amp; </code><code>mkdir</code> <code>-p $MYDIR</code>

<code> </code><code>$MYDUMP $dbname $tname |</code><code>gzip</code> <code>&gt;$MYDIR/${dbname}_${tname}_$(</code><code>date</code> <code>+%F).sql.gz</code>

<code>    </code><code>done</code>

<code>(3) 设置定时任务</code>

<code> </code><code>crontab</code> 

<code> </code> 

<code> </code><code>语法:</code>

<code>  </code><code>*    *    *    *    *   </code><code>command</code>

<code> </code><code>minute   hour   day   month   week   </code><code>command</code>

<code>其中:</code>

<code>minute: 表示分钟,可以是从0到59之间的任何整数。</code>

<code>hour:表示小时,可以是从0到23之间的任何整数。</code>

<code>day:表示日期,可以是从1到31之间的任何整数。</code>

<code>month:表示月份,可以是从1到12之间的任何整数。</code>

<code>week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。</code>

<code>command</code><code>:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。</code>

<code>例如:</code>

<code>57  21  *  *  * </code><code>/bin/sh</code>   <code>/bash/script/back_mysql</code><code>.s</code>

本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1866520,如需转载请自行联系原作者