Hexo 扩展 --- 优雅的备份 Hexo 博客

前言

由于 Hexo 是静态博客,需要在本地配置,写文章,然后生成静态页面后上传到服务器。

这也就带来了备份的问题,我辛辛苦苦的配置了那么多主题相关的个性化配置,换电脑了怎么办?
重写? 怎么可能。!

那么备份本地的 Hexo 文件吧,这就涉及到一个问题,先看下我的博客在本地占用的空间和文件数量:

文件大小还可以接受,但…文件数量这么多,小文件复制起来那叫一个慢啊。

这里我们要考虑几个问题了:

  • 哪些文件需要备份,哪些不需要。
  • 如何备份,用什么工具备份。
  • 备份到 U 盘?云盘?还是其他。
  • 备份后如何恢复(重点)。

按照这几点,我们慢慢谈。

备份哪些文件?

备份我们只需呀备份一些重要的文件即可,一些安装后就没该变化,或会自动生成的文件就没必要备份了,以下几个是我测试后的较为精简的备份方案。

  • 根目录下的几个配置文件,主要是 _config.ymlpackage.json(必备份)
  • source 文件夹,这个就不用说了,这里面包含了你写的文章的 markdown 源码,这个才是最重要的。(必备份)

  • hexo/themes/themes_name 这里的 themes_name 指的是你的主题名称,可能你会对主题进行一些个性化的配置,所以这个主题全部备份了。(一般都只用一个主题,而且默认的主题也不用,所以默认主题不用备份。)。(必备份)

  • scaffolds 文件夹,这个文件夹里是创建文章时的模板,如果你没修改过这个文件夹中的东西,可以不用备份。(根据情况备份)

  • .ssh ,如果你使用了免密部署,那么备份下你的公钥和私钥还是有必要的,你也可以选择,当然重新生成。(根据情况备份)

备份到哪里?

备份到哪里也是一个问题,备份到 U 盘的话就太麻烦了,而且也不能保证文件的实时性,万一电脑文件突然全部丢失了,还没来得及备份,那就完蛋了~。

所以直接排除掉本地备份这一项,而使用云服务备份,可以使用百度云,或 OneDriver 等服务,但还要考虑一个问题,就是能不能进行增量备份、选择性备份,方便不方便。

说先说说百度云,是大厂的,可靠性很高,但是呢,你可能备份上去简单,下载下来就难了。。。
然后就是 OneDriver 等国外的服务提供商,同样也是大厂,但是毕竟由于网速的问题,选择国外的服务商不太适合。

于是就轮到今天的主角了:坚果云,不是广告,是确实挺好用。
记得用 选择性备份

备份后如何恢复?

  1. 安装 NodeJS 和 Git 这个就不多说了,并把备份的公钥私钥放到用户目录下的 .ssh 文件夹下,同时还要记得配置 Git 的邮箱和用户名:

    1
    2
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
  2. 再将备份到坚果云的文件都先同步(下载)到本地的一个文件夹。

  3. 然后创建一个目录,用来存放 hexo,一系列命令 :

    1
    2
    3
    4
    5
    npm config set registry http://registry.cnpmjs.org
    npm install hexo-cli -g
    hexo init
    npm install
    npm install hexo-util --save
  4. 现在再把第二步的拿到的之前备份的文件,依次覆盖当前目录下的文件即可(package.json 除外)。

  5. 对比备份的 package.json 和新生成的 package.json 文件的区别,可以得知自己有哪些插件没安装,安装即可。(如果不小心覆盖掉了 package 文件,也不要紧,打开 node_modules 文件夹,查看跟备份的 package.json 中的差别)

还原后,别忘了,在把现在的博客再设置下备份~~~

坚持原创技术分享,您的支持将鼓励我继续创作!