G-framework
一款优秀的国产PHP MVC轻量级开发框架
我的博客
Linux下数据库自动备份及自动提交到svn
我们通过计划任务和shell脚本实现数据库自动备份,首先你需要安装svn客户端并且加入了svn环境
1.我们定义shell 脚本
#vi /usr/local/sbin/db_auto_backup.sh  内容如下:

#! /bin/bash


## this is a database auto backup shell script.

## writen by g-framework 2014-03-08


## database export

d=`date "+%Y%m%d"`

/usr/local/mysql/bin/mysqldump -u MysqlUser -pPASSWORD Database > /data/www/mysite/MysqlBackup/Database.$d.sql


## commit to svn server
export LC_ALL="en_US.UTF-8"
cd /data/www/mysite/MysqlBackup

svn add /data/www/mysite/MysqlBackup/Database.$d.sql

svn commit -m "database auto backup $d"

2.编辑计划任务
#crontab -e
加入任务

0 2 * * * /bin/sh /usr/local/sbin/db_auto_backup.sh >/dev/null

这样就可以了,每天管理员仅需打开自己的电脑,check out svn即可获取每日的数据库备份文件。
注:本文中/data/www/mysite/MysqlBackup为本机svn check目录。
特别说明:有可能数据库尚未完成备份,svn指令就已经执行了,解决方法为在备份和svn提交之间加入sleep 指令(比如:sleep 20) ,也可以分拆为两个sh文件,这样在crontab中需要定义两个时间点分别执行。

如果使用log,crontab可以修改为
0 2 * * * /bin/sh /usr/local/sbin/db_auto_backup.sh >> /var/log/svn_commit.log 2>&1
上一篇:mongoDB性能测试
下一篇:Nginx禁止ip访问和没有定义的server_name访问