备份数据库到git

例:
数据库备份文件目录为 /alidata/www/sqlbak/ 在该目录下创建git,指向远程git仓库

备份数据库名称为 myblog

备份shell如下:

  1. 0 1 * * * cd /alidata/www/sqlbak/ && /usr/local/mysql/bin/mysqldump myblog > \
  2. /alidata/www/sqlbak/db-myblog.sql && git add . \
  3. && git commit -m 'db myblog bak at'$(date +"\%Y\%m\%d") && git push

也可以分多步执行:

  1. # 在数据库服务器生成备份sql文件
  2. */10 * * * * cd /alidata/www/sqlbak/ && /usr/local/mysql/bin/mysqldump test > /alidata/www/sqlbak/test.sql
  3. # 在第三方备份服务器,同步上述sql文件
  4. */10 * * * * /usr/bin/rsync -avzr test@104.200.16.35:/alidata/www/sqlbak /alidata/www/sqlbak
  5. # 在第三方备份服务器将上述sql文件备份到git
  6. */10 * * * * cd /alidata/www/sqlbak/ && git add . && git commit -m 'db bak at'$(date +"\%Y\%m\%d") && git push

mysqldump免输入账号密码前提配置:

  1. vim /etc/my.cnf
  2. [mysqldump]
  3. user=your_backup_user_name
  4. password=your_backup_password

以上配置后使用mysqldump命令就不需要涉及用户名密码相关信息。
注意这个账号密码要用最小权限的,如只允许对指定备份库的读权限