备份数据库到git
例:
数据库备份文件目录为 /alidata/www/sqlbak/ 在该目录下创建git,指向远程git仓库
备份数据库名称为 myblog
备份shell如下:
0 1 * * * cd /alidata/www/sqlbak/ && /usr/local/mysql/bin/mysqldump myblog > \
/alidata/www/sqlbak/db-myblog.sql && git add . \
&& git commit -m 'db myblog bak at'$(date +"\%Y\%m\%d") && git push
也可以分多步执行:
# 在数据库服务器生成备份sql文件
*/10 * * * * cd /alidata/www/sqlbak/ && /usr/local/mysql/bin/mysqldump test > /alidata/www/sqlbak/test.sql
# 在第三方备份服务器,同步上述sql文件
*/10 * * * * /usr/bin/rsync -avzr test@104.200.16.35:/alidata/www/sqlbak /alidata/www/sqlbak
# 在第三方备份服务器将上述sql文件备份到git
*/10 * * * * cd /alidata/www/sqlbak/ && git add . && git commit -m 'db bak at'$(date +"\%Y\%m\%d") && git push
mysqldump免输入账号密码前提配置:
vim /etc/my.cnf
[mysqldump]
user=your_backup_user_name
password=your_backup_password
以上配置后使用mysqldump命令就不需要涉及用户名密码相关信息。
注意这个账号密码要用最小权限的,如只允许对指定备份库的读权限