Hexo备份及恢复

前言

完成了博客的搭建并云端化之后,另一个担忧出现了:在腾讯云购买的便宜服务器只有一年时间,到期之后,如果更换到其他服务器,那么原本的博客内容如何完美迁移过去。

经过了解,可以使用hexo-git-backup插件实现博客备份。

本文所用环境:

腾讯云服务器

Github

博客备份

创建备份仓库

在Github上新建仓库(如:hexo-backup),权限设置为private

修改配置文件

在hexo配置文件(_config.yml)中添加以下内容:

1
2
3
4
backup:
type: git
repository:
backup: git@github.com:xxXx/xXxx.git,branchName

例如:

⚠️2020 年 10 月 1 日之后,Github新创建仓库默认分支为main,因此branchName属性按个人实际情况填写。

安装插件

1
npm install hexo-git-backup --save

备份

运行hexo backuphexo b即可备份博客文件夹下内容

1
hexo b

推送到Github仓库的内容如下:

博客恢复

环境配置

在新电脑/服务器上配置Git、NodeJs,具体步骤可以参考Windows下hexo+Github个人博客搭建Hexo完全部署到腾讯云两篇,分别介绍了Windows及CentOS环境下hexo的配置。

生成SSH秘钥并添加到Github

在新环境下运行Git命令:

1
2
3
git config --global user.name "yourname"
git config --global user.email "youremail"
ssh-keygen -t rsa -C "youremail"

生成秘钥并保存在本地:

找到id_rsa.pub文件并复制其中全部内容。

打开Github,在头像下面点击Settings,再点击SSH and GPG keys,新建一个SSH key,名字随便取一个都可以,把刚刚复制id_rsa.pub的内容粘贴进去并保存。

运行命令ssh -T git@github.com,出现用户名,则配置成功。

下载备份文件到本地

  1. 使用git clone命令将备份仓库下载到本地,相当于创建了博客本地文件夹
  2. 将下载的文件夹改名并移动至固定位置*(非必要步骤)*
  3. 在博客文件夹下执行命令npm install hexo-cli -g安装hexo插件
  4. 执行命令npm install自动安装依赖文件*(如butterf主题的依赖、Gulp插件等,若未自动安装成功,手动安装即可)*
  5. 执行命令npm install hexo-deployer-git --save安装部署插件

在新环境上运行博客

Windows上运行hexo cl && hexo g && hexo s,打开本地路径localhost:4000检查是否成功,调整完毕后即可像之前一样正常使用;

云服务器上先要对环境及配置文件进行修改(主要修改ip地址、文件目录等路径),之后运行hexo cl && hexo g && hexo d,使用浏览器打开服务器地址查看是否成功。

后记

在使用过程中会出现Github无法连接的问题,也可以考虑使用码云-gitee进行文件备份(服务器在国内而且使用方法与Github类似),具体的可以自行搜索尝试。


参考教程:Hexo 博客备份及恢复 | Gahotx’s blog