这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

Linux 网站文件+数据库 定时备份到七牛云储存 脚本

Linux教程 Toyo 22评论
广告
本文最后更新于 2018年7月19日 12:05 可能会因为没有更新而失效。如已失效或需要修正,请留言!

认真的做网站,不仅需要一个稳定的主机(VPS),还需要定时备份自己的网站数据和数据库,毕竟再稳定的主机(VPS)也有可能出问题,不过大部分情况下都是自己折腾导致的问题,所以定时备份是必不可少的。

早在2015年,我在寻找备份方法的时候,就找到了这个备份网站文件+数据库到七牛的脚本。


本脚本Github项目地址:https://github.com/ccbikai/backuptoqiniu

七牛新建储存空间+获取七牛密匙

要看这个教程,首先你要有一个 七牛云的账号,没有就注册一个

注意:七牛注册后会送1G流量和空间,还需要实名认证后,才会送10G流量和空间,有实名认证洁癖的不需要往下面看了。

注册并实名认证后,打开 七牛云控制面板页面。

然后点击控制台左边侧栏的 对象储存,然后点击 新建储存空间

然后输入 储存空间名称(后面需要使用)、选择 储存区域(随便哪个都行)、访问控制选择 私有空间 ,确定无误后点击 确定创建 按钮。

然后我们还需要七牛密匙,点击七牛控制面板右上角 个人面板 - 密匙管理

然后会看到你的密匙,如果没有请创建,我是以前创建了两个,随便选一个就行了。

复制 AK和SK两行文本 ,随后脚本有用。

安装环境

首先这个脚本需要用到 python,所以先确定你VPS的 python 版本是否是2.7以上。

python -V

如果低于 2.7 版本,那你就需要升级python版本,才能继续看教程了。

脚本需要用到 zip 解压缩,所以需要安装 zip和unzip 。

CentOS系统:
yum update && yum install -y zip unzip

Debian/Ubuntu系统:
apt-get update && apt-get install -y zip unzip

接下来就是安装和设置脚本了。

安装脚本

wget --no-check-certificate -O backuptoqiniu.zip https://yun.doubibackup.com/Website/backuptoqiniu.zip
unzip backuptoqiniu.zip && cd backuptoqiniu
python setup.py install

安装很快,如果没有报错,那么就继续下一步。

设置脚本

 backuptoqiniu 文件夹中有一个 backuptoqiniu.sh 脚本文件,里面设置的是配置信息。

我们可以把这个文件通过SFTP下载到本地修改,也可以在SSH用 VI 中修改。

vi backuptoqiniu.sh

打开文件后,我们只要看前半部分就行了。

## 备份配置信息 ##

# 备份名称,用于标记
BACKUP_NAME="qiniu"
# 备份目录,多个请空格分隔
BACKUP_SRC="/home/wwwroot/xxx.xxx"
# Mysql主机地址
MYSQL_SERVER="localhost"
# Mysql用户名
MYSQL_USER="root"
# Mysql密码
MYSQL_PASS="mysqlpassword"
# Mysql备份数据库,多个请空格分隔
MYSQL_DBS="dbname"
# 备份文件临时存放目录,一般不需要更改
BACKUP_DIR="/tmp/backuptoqiniu"
# 备份文件压缩密码确保压缩包的安全
BACKUP_FILE_PASSWD="doub.io"

## 备份配置信息 End ##

## 七牛配置信息 ##

#存放空间对应我们在七牛上创建的文件夹
QINIU_BUCKET="doubi"
QINIU_ACCESS_KEY="ACCESS_KEY"
QINIU_SECRET_KEY="SECRET_KEY"

## 七牛配置信息 End ##

根据中文注释提示来修改各参数设置。

需要注意的是如果你要备份多个目录,那 BACKUP_SRC 参数要用空格隔开多个目录,这样写:

BACKUP_SRC="/home/wwwroot/xxx.xxx /home/wwwroot/yyy.yyy /home/wwwroot/zzz.zzz"

数据库也一样,假如你有三个数据库,名称分别为 xxx yyy zzz ,那么就这样写:

MYSQL_DBS="xxx yyy zzz"

重点说的是 七牛配置信息。

在上面我们已经 新建储存空间 了,而当时填写的 储存空间名称 就是这里的 QINIU_BUCKET 参数。

QINIU_ACCESS_KEY 对应的是 上面获取七牛密匙的 AK 代码。

QINIU_SECRET_KEY 对应的是 上面获取七牛密匙的 SK 代码。

这三个一定不能填写错误,否则会无法链接到七牛云储存空间来上传备份文件。

设置完毕后,我们可以尝试运行脚本测试一下。

chmod +x backuptoqiniu.sh
# 赋予脚本执行权限
bash backuptoqiniu.sh

正常情况下,应该提示是这样的:

[email protected]:~# bash backuptoqiniu.sh
start dump mysql
dump ok
start tar
tar ok
start upload
upload ok
backup clean done

如果提示正常,可以去 七牛控制面板 查看是否上传成功。

设置定时任务

既然是备份,那就要设置定时任务,定时备份,我用的是 crontab ,如果你没有安装请安装:

CentOS系统:
yum install -y crond

Debian/Ubuntu系统:
apt-get install -y cron

然后因为各VPS的时区和VPS本地有关,所以你需要把VPS的时区改为北京时区。

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

可能会提示是否覆盖,根据提示输入 y 或者 yes

设置完VPS的时区还不行,还需要重启一下 crontab ,这样 crontab 才会使用VPS的时区。

CentOS系统:
/etc/init.d/crond restart

Debian/Ubuntu系统:
/etc/init.d/cron restart

以上都设置完了,就可以开始设置 定时任务了。

假设你上面的安装脚本步骤都是在 root 目录下执行的,那么你的 七牛脚本位置就是 /root/backuptoqiniu/backuptoqiniu.sh ,如果不是,那么请自行修改目录。

打开 crontab 编辑模式(如果crontab是vim编辑器,那么需要按 I键 进入编辑模式,如果是nano编辑器那么可以直接输入),在最后加入下面的定时任务代码:

crontab -e
# 下面是定时任务代码
0 2 * * * /bin/bash /root/backuptoqiniu/backuptoqiniu.sh

0 2 * * * 指的是,每天凌晨2点0分执行一次备份脚本。

 * * * * * 分别对应的是 分钟 小时 日 月 星期

如果你要每隔 3天备份一次,那么改成 0 2 */3 * * ,这样就是每隔 3天凌晨2点0分执行一次。

更多的使用方法请百度谷歌 crontab定时用法。

当你添加完 定时任务代码后,

如果你的 crontab 是 vim编辑器,那么按 ESC键 退出编辑模式,然后输入 :wq 保存并退出。

如果你的 crontab 是 nano编辑器,那么按 Ctrl+X 退出,然后提示你内容已更改 是否保存,按 y键 ,然后再按 回车键 就好了。


本文章转载自:http://www.laozuo.org/2587.html ,当初也是看着个教程做的。

到这里,教程就结束了,有什么错误或者需要补充的可以在下面留言。

转载请超链接注明:逗比根据地 » Linux 网站文件+数据库 定时备份到七牛云储存 脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (25)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(22)个小伙伴在吐槽
  1. 大佬,请问这个脚本能否把数据备份到谷歌网盘?或者能否支持一下,谢谢
    Happig2018-10-26 16:21 回复
    • 并不能,这个脚本目前我也不用了,七牛越来越抠门了,我还是FTP备份到其他服务器上算了,交叉备份。
      Toyo2018-10-26 16:40 回复
  2. 前些日子,我和我的学长开发这个脚本功能增强版本,https://github.com/CHN-STUDENT/WebServerAutoBackup,完善上面那个脚本所有不能完善的功能,求帮忙宣传和指出不足和帮助改进。
    chn-student2018-05-22 23:43 回复
  3. 备份提示这个,咋办mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
    牛叉小人2017-10-04 22:35 回复
    • 要么密码错误,要么你的 root 账号没有设置运行 localhost(本地)或者任意地址 链接,要么是你的VPS没有把 localhost 指向 127.0.0.1(打开脚本,把第11行 localhost 改成 127.0.0.1 试试) ,这种情况请先依次检查。
      Toyo2017-10-05 19:29 回复
  4. 测试失败。数据没了伤心
    弹弹堂2017-09-17 18:31 回复
  5. 脚本提示成功,但是七牛空间上什么也没有的。 :grin: 把七牛云的储存区域改成 华东 就好了。
    胸口碎大石2017-05-27 10:17 回复
  6. “有实名认证洁癖的不需要往下面看了” 果断不往下看了(#阴险)。
    南琴浪2017-03-17 23:07 回复
  7. 表示 所有都是成功的没报错,但是七牛上还是啥都没有
    许未来2017-03-03 14:47 回复
    • 不懂了。。。这个脚本工具,我已经用了一年多了,到现在也正常运行。
      Toyo2017-03-03 20:02 回复
  8. 弱弱的问一下,按照文章说的一步步做,也是完成的,但是七牛控制面板里啥都没有?是不是哪里操作错了?
    EcareYu2017-02-14 17:58 回复
    • 我昨天还备份得好好的,结果今天速度巨慢,显示成功七牛云里什么也看不到。
      Colin2017-02-15 15:06 回复
    • 刚才突然发现了问题:你在每次使用的时候可能都要执行一遍: chmod +x backuptoqiniu.sh # 赋予脚本执行权限 我开始以为一次就行了,刚才加上就行了。
      Colin2017-02-15 15:18 回复
      • 的确一次就行啊,我就是啊。。。
        Toyo2017-02-15 16:12 回复
        • 原来是假象……我后来测试的时候为了节约时间备份的另一个空文件夹做测试。之后真正备份wordpress又不行了,不知为何。测试的那两个空文件是可以发过去的,如果说wordpress的压缩包没发,我用手机端的一个软件检测服务器时却确实看到了上传时的网速明显变快。但是异常的是网速特别慢,100K/s,昨天正常的时候1M/s。现在仍未解决
          Colin2017-02-15 22:08 回复
          • 好吧,后来一直没等到回复,所以后来改成用qshell上传 https://github.com/Ecareyu/backup2qiniu 好用记得点start哦! :razz:
            EcareYu2017-02-16 14:29 回复
            • 用这个成功了 只是定时有问题 定时服务有点bug
              Colin2017-03-01 19:06 回复
    • 我也是...不知道是什么问题..
      akai2017-02-19 12:21 回复
  9. 收藏了,有空弄一个
    yufan2017-02-11 22:01 回复
  10. 占个板凳。
    翔翎2017-02-10 18:09 回复
  11. 前排! :shock:
    雪碧2017-02-07 19:27 回复