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 下可以看到