如何将原版不蒜子busuanzi的数据迁移到自搭建不蒜子上
之前因为访问速度换到自搭建不蒜子,丢失了之前的所有数据。星辰写了一个转换的项目,可以将原有不蒜子的数据无痛转移到自搭建的上面来。下面我们来实操一下吧!
项目
请确保已经搭建自搭建不蒜子,本文由自搭建不蒜子项目作者星辰同学手把手指导。
停止运行不蒜子
ssh连接服务器,然后cd进入不蒜子的目录,然后执行docker-compose down
把容器停止。
备份dump.rdb
为了避免造成不可挽回的损失,我们首先需要备份原来的数据文件。以宝塔为例。
因为最初使用docker-compose来部署的,数据库在data文件夹下。
下载/data/redius/dump.rdb
修改docker-compose
添加端口给redius,将容器内 redis的 6379 映射到宿主机的 16379上
1 | ports: |
添加完重新执行 docker-compose up -d
下载转换项目
到版本中下载根据你的服务器下载对应的编译的版本。
大多数情况下,是busuanzi-sync-linux-amd64-v0.0.4
这个文件。
下载env文件
内容为
1 | # 在此处指定您的博客 sitemap 地址 |
修改里面的内容。
其中sitemap例如我的地址是:https://blog.zhheo.com/sitemap.xml
如果你使用过转换工具
如果你根据之前的教程使用过转换工具升级数据方案,那么
REDIS_PREFIX: bsz_transfer
BSZ_PATH_STYLE: false
BSZ_ENCRYPT: MD532
上传项目到服务器
在项目根目录下新建一个busuanzi-sync
的文件夹
将.env
和可执行文件上传到此文件夹,.env就是刚才编辑的那个文件env,重命名成.env
即可。
开始运行
ssh使用cd进入busuanzi-sync
文件夹,然后运行可执行文件。
例如
如果你的服务器不能访问不蒜子
如果你的服务器不能访问不蒜子,提示curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to busuanzi.ibruce.info:443
,可以尝试本地来跑。
如果你不想直接在本地系统安装Redis,可以通过Docker来快速安装和运行Redis容器。这种方法具有环境隔离的优势,而且操作简单。以下是通过Docker安装Redis并加载dump.rdb
文件的详细步骤:
1. 安装Docker
首先,确保你已经在本地机器上安装了Docker。如果还未安装Docker,你可以前往Docker官方文档下载并安装Docker。
2. 启动redius容器
创建一个文件夹,然后将rdb文件放进去
例如:/Users/zhheo/Downloads/redis-data/dump.rdb
打开终端并拉取最新的Redis镜像:
1 | docker run -d --name redis-server \ |
这里面Users/zhheo/Downloads/
更改为你的dump所在的本地路径
确保看到容器正在运行,并且本地的16379端口已经映射。接下来,你可以按照教程中的步骤,配置.env
文件然后运行busuanzi-sync
工具即可完成数据转换。
同步完成后停止本地的docker容器,然后我们可以找到本地的新的dump.rdb
文件,然后在服务器不蒜子和不蒜子redius关闭的情况下,将本地修改后的dump.rdb
文件替换服务器上的dump.rdb
,然后启动服务器上的不蒜子。
执行脚本时候的过程
此过程极其耗费时间。并且如果你的数据越多,此过程就越费时间。
在m1pro本地docker下,100-200wUV数据,耗时大概十分多钟。
然后就开始请求pv数据,请求pv的阶段就有进度条了:
会根据你的env文件配置的请求速率来请求数据。(默认一秒两个)
- 感谢你赐予我前进的力量