接外包,有相关需求的可以联系我:Telegram | Email

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

该文章创建(更新)于04/30/2019,请注意文章的时效性!

文章目录[隐藏]

起因

之前一直是手动备份网站到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

要不赞赏一下?

微信
支付宝
PayPal
Bitcoin

版权声明 | Copyright

除非特别说明,本博客所有作品均采用知识共享署名-非商业性使用-禁止演绎 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/


要不聊聊?

我相信你准备留下的内容是经过思考的!【勾选防爬虫,未勾选无法留言】

*

*



YouTube | B站

微信公众号

👉 NewsLetter ❤️ 邮箱订阅 👈

优惠码

阿里云国际版20美元
Vultr10美元
搬瓦工 | Bandwagon应该有折扣吧?
Just My SocksJMS9272283 【注意手动复制去跳转】
域名 | namesiloemperinter(1美元)
币安 币安