事情经过
最近想要把博客的版本升级一下,因为感觉好久没有维护了,就想着维护一下。结果发现从2.15
升级到2.18
总会报错,我就尝试升级到低一点的版本2.17
试试,也还是不行,试了各种办法也行不行。再加上前一段时间折腾着更换主题,猜测和主题的设置可能也有关系,就试着更换主题,结果也还是报错。
报错的内容也很奇怪,后台可以正常进入,但是主页死活进不去,进去就报服务器500
的错误。然后就索性退回到2.15
版本,先运行着。
后来看到官方说明中可以备份,并且备份在恢复的时候不限制版本,就试着在新的服务器上面重新拉去一个最新的2.18
的镜像,然后使用备份文件进行恢复,一样还是报错。最后都没有找到解决办法,所以就直接新建一个新的Halo,然后一篇一篇的文章复制粘贴重新发布。这样就会导致我的浏览量和评论数据的丢失。并且我现在的文章量不是很大,如果是几百篇文章,那这样一篇一篇的复制粘贴体量太大。所以接着这个机会,思考和记录如何备份网站的数据。
备份方案
- 本地备份
最简单也是最实用的备份方式,也就是每一篇文章都做本地备份,写完然后就复制粘贴到本地。以后打算所有的文章都采用Markdown
的格式,这种格式可以让我更加专注于如何创作或写作,不用特别将注意力特别放在格式上。话说回来,本地一个很好用的Obsidian
管理软件也不错,后面学习后可以专门出一期好用的软件分享。目前我的主力软件是语雀
,起码毕业之前都会使用(因为有会员)。这些笔记软件使用下来都不错,到时候整理在一起。 - 网站自带备份
官方有自带的备份与恢复,可以直接参考官方的备份与恢复方式。
但是需要注意下面几点。
- 恢复不限制部署方式,也不限制数据库,也就是说新站点的部署方式和数据库类型可以和备份的站点不同。
- 恢复过程可能会持续较长时间,期间请勿刷新页面。
- 在恢复的过程中,虽然已有的数据不会被清理掉,但如果有冲突的数据将被覆盖。
- 恢复完成之后会提示停止运行 Halo,停止之后可能需要手动运行。
- 服务器备份
这种方式需要用到以下的几行命令,当然这些命令在以前的一篇博客中也有提到。
这样就可以把这个项目整体的数据进行打包备份,还可以使用下面的命令打包成压缩包cd data/docker_data/halo/ cp -r /data/docker_data/halo /data/docker_data/halo.archive
这样就会在当前目录下生成一个tar.gz的压缩包。cd /data/docker_data/halo.archive tar -zcvf halaarchive.tar.gz halo.archive
其他
总之吃一堑长一智,就简单记录以下这次经历。前两天刚出了网易云的问题,说明一个服务的维护成本要比搭建成本高得多。依旧需要多学习,最后祝各位开心每一天!