linux 定时备份数据库

linux下定时备份mysql使用到了crontab系统,其按日期对备份结果进行保存,从而达到备份数据库的目的。

1、创建mysql中数据库的备份目录,mkdir /mysqlbackdir

2、创建mysql备份脚本,vi /usr/sbin/bak_mydb

#2012-6-19#
#edit by jijw#
#mysqldump命令 未使用绝对路径 所以在执行脚本前需要检查是否可以单独调用,若未调用可以将其放到path中,具体方法如下 #
#vi /etc/profile 在其中加入绝对路径 export PATH=$PATH:/usr/local/mysql/bin #

# 定义文件变量 #
time="$(date +"%Y%m%d%H%M%S")"
# mysqldump 导出 #
mysqldump -uroot -p1 mc2_move > /mysqlbackdir/mc2_move$time.dump

# 打开数据库目录并压缩当前备份文件,备份后删除dump文件#
cd /mysqlbackdir
tar -czvf mc2_move$time.tar.gz mc2_move$time.dump
rm -rf /mysqlbackdir/mc2_move$time.dump
  

3、给mysql备份脚本赋权,chmod +x 

4、配置linux crontal(/etc/crontab)配置文件(每天12点030分)

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed

#back mc2_move
30 12 * * * root /usr/sbin/bak_mydb

 5、重启crond, /etc/rc.d/init.d/crond restart

 6、生成成功的话文件在/mysqlbackdir 下可以看到

猜你喜欢

转载自weivs929.iteye.com/blog/1561573