之所以选择码云是因为其私有仓库是免费的, 而私有仓库是收费, 约 7 + 美元一月, 对于个人开发者似乎也是一笔不小的费用.
在创建自动将备份上传到码云仓库前, 建议您先看下以下文章:
《如何通过 Git 将本地项目推送到码云或 GitHub》
对于不太了解的朋友来说, 此文章非常有用, 否则在进行以下步骤时会出现各种报错.
实现方案:
登录到码云
创建私有仓库
服务器生成 SSH 公钥
创建 SSH 公钥
以上步骤在上文中有详细说明.
1. 创建 shell 脚本文件:
- $ cd /mnt/renwole
- $ VIM mysqlbak.sh
2. 添加以下内容:
- #!/bin/bash
- createAt=`date +%Y-%m-%d-%H:%M:%S`
- mysql_back_path=/mnt/MySQL-Bak
- /usr/local/MySQL/bin/mysqldump -u 数据库用户名 -p 密码 数据库名 > $mysql_back_path/renwoleblog-$createAt.sql
- # 自动删除 7 天前的备份
- # -type 文件类型 f 是文件
- find $mysql_back_path -name "*.sql" -type f -mtime +7 -exec rm -rf {
- } \;
- cd $mysql_back_path
- Git add -A
- Git commit -m "${createAt}"
- Git push origin master
注意: 上面的路径一定要是绝对路径, 否则执行后成功, 但是导出结果为空, 手动执行正常!
3. 设置执行权限:
$ chmod +x mysqlbak.sh
4. 添加任务计划:
通过定时执行备份脚本
$ crontab -e
插入如下内容:
- */50 2 * * */mnt/renwole/mysqlbak.sh
- $ systemctl restart crond
设置完成后, 每日凌晨 2 点 50 分, 自动备份数据库并推送到码云仓库, 后期可以通过查看历史提交的版本. 再也不用担心数据丢失了.
来源: http://www.bubuko.com/infodetail-3091026.html