为了防止误操作或意外情况导致的 Hexo 博客源文件丢失,或满足我们更换电脑进行写作的需求,所以需要进行备份。

需要备份的文件和目录

而在进行备份时,并不需要将整个博客目录全部备份,只需备份几个用户自定义的文件和配置

scaffolds 文章的模板,需要备份

source 文章和页面等源文件,需要备份

themes 主题文件与配置,需要备份

_config.yml 用户配置信息,需要备份

package.json 模块列表,需要备份

不需要备份的文件和目录

node_modules 安装的模块,不用备份

public 生成的文件静态网页文件,不用备份

db.json 网页数据文件,编译生成静态网页时会自动更新,不用备份

package-lock.json 依赖的模块安装记录,不用备份

此外如果主题目录下.git 这个隐藏目录也可以删掉或者如下面所讲加.gitignore 文件中在备份时忽略掉

备份到 GitHub

1. 在 GitHub 创建一个私密仓库 hexo-source,仓库名字随意,建议设置为私密仓库。

2. 在你的站点目录下增加一.gitignore 文件设置需要忽略的文件和目录,在其中添加不需要备份的内容:

Text

node_modules/

public/

.deploy_git/

_config.landscape.yml

package-lock.json

db.json

themes/*/.git/

.DS_Store

1. 备份你的站点源文件到仓库 hexo-source,其your_token为你的GIthub访问Tokenusername为你的Github用户名

git init

git add *

git commit -m "$(date): Hexo backup"

git remote add origin https://[email protected]/username/hexo-source.git

git push -u origin main

恢复你的 Hexo 站点

1. 初始化一个 Hexo 站点。

2. 从 GitHub 下载备份的内容到该 Hexo 站点目录下:

git clone https://[email protected]/username/hexo-source.git

1. 使用备份的 package.json 文件来恢复安装 Hexo 插件,使用 npm 进行安装:

npm install

这将读取 package.json 文件中的依赖项列表,并下载并安装所需的插件和模块。

1. 生成静态网页并部署即可。

脚本化

有了上面的基础,可以在站点目录下创建bash文件,用来简化操作

1. 文hexp_backup.sh,用于备份Hexo源代码

echo "-------------------------添加文件-------------------------"

git add *

echo "-----------------------提交本地备份------------------------"

git commit -m "$(date): Hexo backup"

echo "-----------------------提交到远程仓库----------------------"

git push -u origin main

echo "-----------------------备份源代码完成----------------------"

2. 文hexp_new_post.sh,用于按照模板创建新博文

blog_name="博客-$(date +'%Y-%m-%d %H:%M:%S')"

hexo new "$blog_name"

echo "-----------------------$blog_name.md 创建成功----------------------"

3. 文hexp_publish.sh,用于编译部署站点

echo "-----------------------清理本地缓存----------------------"

hexo clean

echo "------------------------开始部署------------------------"

hexo d -g

echo "------------------------部署结束------------------------"

4. 文hexp_publish_backup.sh,用于整合部署和备份,通常写完博文后执行这个文件

bash hexo_publish.sh

echo "------------------------开始备份源码-------------------------"

bash hexo_backup.sh

echo "-----------------------全部部署流程完成----------------------"

echo "访问:http://archiewang.site"