mysql 备份脚本以及定时任务

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

(1)分库备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#/bin/sh
#version 0.1
MYUSER=root
MYPASS=123123
#SOCKET=/data/3306/mysql.sock
MYLOGIN="mysql -u$MYUSER -p$MYPASS "
MYDUMP="mysqldump -u$MYUSER -p$MYPASS  -B"
DATABASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"
 
for dbname in $DATABASE
  do
   MYDIR=/server/backup/$dbname
   [ ! -d $MYDIR ] && mkdir -p $MYDIR
 $MYDUMP $dbname|gzip >$MYDIR/${dbname}_$(date +%F).sql.gz
 done

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#/bin/sh
 
MYUSER=root
PASSWD=123123
#SOCKET=/data/3306/mysql.sock
MYLOGIN="mysql -u$USER -p$PASSWD "
MYDUMP="mysqldump -u$USER -p$PASSWD "
DATEBASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"
 
for dbname in $DATEBASE
do
 TABLE="$($MYLOGIN -e "use $dbname;show tables;"|sed '1d')"
  for tname in $TABLE
   do
MYDIR=/server/backup/$dbname/${dbname}_$(date +%F)
     [ ! -d $MYDIR ] && mkdir -p $MYDIR
 $MYDUMP $dbname $tname |gzip >$MYDIR/${dbname}_${tname}_$(date +%F).sql.gz
    done
 
(3) 设置定时任务
 crontab 
  
 语法:
  
  *    *    *    *    *   command
 minute   hour   day   month   week   command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
 
 
 
例如:
57  21  *  *  * /bin/sh   /bash/script/back_mysql.s


本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1866520,如需转载请自行联系原作者
上一篇:Algorithm:C++语言实现之求最大连续子数组(暴力法、分治法、分析法、动态规划法)


下一篇:利用Unison实现双向同步镜像