Linux自动备份mysql数据库到Github(脚本)

文章目录~~>

起因

之前一直是手动备份网站到GitHub,至于数据库也是手动下载到本地。前段时间一个手抖把网站给删了,自己的服务商镜像居然四个都没有用,开不了机,写信给他们寻求帮助,也是没什么实质性建议。说让我不要过于依赖他们的备份,尽量自己搞备份。还好文章数码只有40多篇,自己前一周又备份,有一些还有印象,就重新搞了一下!今天搞备份想能不能搞一个脚本能自动备份最重要的数据库到GIthub,就找到了方法;

:)


方法

  • 建立一个文件夹(如:/home/BACKUP)并建立好与Github的连接,这个我就不介绍了,直接看链接:GIT使用教程;

  • 备份网站目录到/home/BACKUP,比如我的:

    cp -r /blogger /home/BACKUP

  • 在BACKUP里面建立一个文件夹(如:DB)来存放数据库。

    cd /home/BACKUP && mkdir DB
  • 建立脚本文件(比如:backup.sh),我是把脚本也放在/home/BACKUP下面的;

    vim backup.sh

    内容如下

    #!/bin/bash
    cd /home/BACKUP/DB
    message=$(date +%Y-%m-%d)
    mysqldump -uDBNAME -pDBPASSWORD DBNAME > 'DBNAME.sql'
    mv DBNAME.sql DBNAME"${message}".sql
    git add -A
    git commit -m "${message}"
    git push

    注意替换

    • DBNAME:数据库名字
    • DBPASSWORD:数据库密码
  • 自动执行

    crontab -e
  • 希望是每天的凌晨执行一次备份,并添加到远程仓库,那么添加

    0 0 * * * /bin/sh /home/BACKUP/backup.sh

    对linux的crontab指定的时间只有五个部分

段位时间
第一段代表分钟 0—59
第二段代表小时 0—23
第三段代表日期 1—31
第四段代表月份 1—12
第五段代表星期几,0代表星期日 0—6
  • 查看执定时任务
    crontab -l
  • 如果服务没有启动 那么重新启动定时任务
    centos

    systemctl restart crond

    ubuntu

    /etc/init.d/cron restart

除非特别说明,本博客所有作品均采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。转载请注明转自-https://www.emperinter.info/2019/04/30/linux%e8%87%aa%e5%8a%a8%e5%a4%87%e4%bb%bdmysql%e6%95%b0%e6%8d%ae%e5%ba%93%e5%88%b0github%e8%84%9a%e6%9c%ac/
0

要不聊聊?

微信扫一扫,分享到朋友圈

Linux自动备份mysql数据库到Github(脚本)
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close