为了防止意外情况的发生,数据库损坏,造成难以挽回的损失,数据库的备份非常重要。大型网站都有做主从数据库,进行实时的备份。小应用没办法承担那么大的成本,但是数据库备份也还是需要的,如果通过人为的去备份,效率低,还有可能增加人为发生错误的概率,所以大多数都采用定时备份数据库。
定时备份数据库,大多数是采用脚本编写备份的代码,然后通过定时任务去执行。脚本你可以采用你擅长的编程语言,也可以使用shell
。定时任务则用crontab
。
这边我介绍下使用shell
+crontab
的方法,实现定时备份数据库。
首先编写Shell
脚本,我在目录/home/bak
下写脚本,功能:备份数据库,为了节约磁盘空间删除超过30天的备份文件,代码如下:
1 2 3 |
find /home/bak/sqldata/ -mtime +30 -name '*.sql' -exec rm -rf {} \; |
1 2 3 4 5 |
rm -rf {} \; -exec 找到后执行命令 rm -rf {}命令就是删除文件 \;这是格式要求的,没有具体含义。 |
编写定时任务, 功能:每隔两天的0点1分执行脚本任务,备份数据库:
在命令行输入:crontab -e
输入下面代码:1 0 */2 * * sh /home/bak/sqlbak.sh
保存退出:按esc,然后冒号(:),输入字母:wq,按enter键(即vi 的保存退出)
重启crontab
服务:service crond restart
centos
下默认好像是安装了crond
服务了,如果没有则需要自己安装
1 |
yum install crontabs |
