利用crontab和mysqldump定时备份MySQL数据库
前面的2篇文章,《Mysqldump使用介绍》和《CentOS安装crontab及使用方法》其实就是为了这篇文章做铺垫的,至于为什么要写这篇文章,还有从前2天工作中一次小事故说起。前2天同时在进行update时,没有注意加条件,把所有的数据表都更新了,更要命的是没办法恢复,而运维同学除了前一段时间我修改数据库时让他做的数据备份他竟然没有任何备份。从运维的角度来说,我觉得有些失职了,数据的备份应该也算是运维份内的工作吧,所以才有今天博主参考资料,并且自己动手写下这篇博客的原因!
博主的shell水平有限,这些大部分还是在网络上面参考别人的结果。下面我就分享一下自己的实验步骤和结果吧,希望对看到这篇文章的同学有所帮助!
创建保存备份文件的路径
[root@king-centos mysql]# mkdir /backup/mysql/
创建mysqldump备份脚本文件
[root@king-centos mysql]# vim /usr/sbin/mysqlbak
下面是脚本内容:
[/shell]
#!/bin/bash
# this is shell for auto db backup
# database name
dbname=mytest
dbuser=king
dbpwd=123456
backupdir=/backup/mysql/
backupfile=”$backupdir$dbname”_.$(date +%Y%m%d%M).sql
mysqldump -u$dbuser -p$dbpwd $dbname > $backupfile
echo ‘ok’;
[/shell]
保存脚本内容,并赋予其可执行权限
[root@king-centos mysql]# chmod +x /usr/sbin/mysqlbak
最要要做就是将其放入crontab啦
[root@king-centos mysql]# vim /etc/crontab
写入:
01 22 * * * root /usr/sbin/mysqlbak
上面的意思就是每天22:01用root的身份来执行这个脚本备份文件。
最后重启crond服务器即可:
[root@king-centos mysql]# service crond restart
当然博主的shell能力有限,大家能力强的可以把shell脚本写的更复杂一些!
PS: Only experienced accidents,we realized the importance of backups!
下面是博主在写这篇文章参考的资料地址,感谢了!
https://sites.google.com/site/polarisnotme/mysql/mysqlmysqldump
http://www.51cto.com/html/2005/1019/8433.htm
近期评论