Ghost博客更新步骤及Log自动rotation

好久不折腾博客了,发现版本号又大跃进了,于是马马虎虎更新一下,与时俱进吧。
老样子,连接后第一步就是进行升级三部曲,Linux的安全性最好是通过不断升级来保证。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

中间有什么提示直接回车即可。

因为Ghost升级,之前的12.x的node下直接升级会报错,因此我们先升级node到16.x

cd ~
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
sudo apt-get install -y nodejs

接下来升级Ghost CLI工具。

cd /var/www/ghost
sudo npm install ghost-cli@latest -g

接下来升级本体,别忘了先做个体检。

ghost doctor
ghost update

搞定收工。

哦还不能收工,最近抽空看了以下博客自动备份的内容,发现备份包越来越大了。
遂研究了下,发现log文件高达600多M,于是直接删除。

但是手动删除毕竟是个事而且比较麻烦,不符合自动运维的精神,于是研究了下如何自动完成,发现Ghost本身是支持自动rotation功能的(何时支持我懒得查了,多半是在我初始安装之后),按文档似乎应该自动启动,不知为何我的博客并没有,可能是文档有误,也可能是因为我一路升级上来配置并不是当下新安装的默认配置。

Anyway,自己动手丰衣足食,顺便记录一下。

首先进入目录:

cd /var/www/ghost

文档没写清楚,其实就在这个目录下就有配置文件config.production.json,不用到处找(和我一样),nano之。

sudo nano config.production.json

找到log对应配置字段,修改如下:

  "logging": {
    "level": "info",
    "rotation": {
      "enabled": true,
      "count": 15,
      "period": "1d"
    },
    "transports": [
      "file",
      "stdout"
    ]
  },

level字段原本就有,我没改。此属性对应log记录等级,我这边是详细记录,如果你不想记录那么多,可以将其对应改为error级别。
rotation这一段原本是没有的,所以我的log文件无限增大,遂加之。
enabled不言自明。
period表示一个时间段的长度,我设置的是一天,超过后会新建log文件,之前的文件按顺序增加后缀名保存。
count表示保存多少个时间段的log,我这边是保存半个月,系统会以此删除超过时间的log。
transports是原本就有的字段,保留之。

log文件保存在/var/www/ghost/content/logs目录中,如果你有额外需求这里可以设置保存在另外的目录,详见文档,我就懒得写了,如果修改的话注意确保ghost用户应对其有相应操作权限。

修改完后别忘了务必重启Ghost以确保配置生效。

ghost restart

运行一天后结果如下:

ubuntu@ip:/var/www/ghost/content/logs$ ls -hl
total 2.2M
 3.1K May 18 03:54 https___wmdpd_com_production.error.log
  14K May 17 14:24 https___wmdpd_com_production.error.log.0
 439K May 18 04:16 https___wmdpd_com_production.log
 1.7M May 17 23:59 https___wmdpd_com_production.log.0
   34 Dec  7  2020 log.txt