文章

博客维护 Cheatsheet

#maintenance#backup#deploy

常用目录

cd /home/ubuntu/blog
  • 源码目录:/home/ubuntu/blog
  • 文章目录:/home/ubuntu/blog/src/content/posts
  • 构建产物:/home/ubuntu/blog/dist
  • 线上目录:/var/www/html
  • 备份目录:/home/ubuntu/blog-backups
  • Uptime Kuma 配置:/home/ubuntu/blog/monitoring/uptime-kuma

新建文章

cd /home/ubuntu/blog
cp docs/post-template.md src/content/posts/my-new-post.md
nano src/content/posts/my-new-post.md

如果文章暂时不发布,在头部加入:

draft: true

构建检查

cd /home/ubuntu/blog
npm run build

构建成功才发布。

发布到线上

cd /home/ubuntu/blog
npm run build
sudo rsync -a --delete dist/ /var/www/html/

发布后检查线上目录:

ls -la /var/www/html

健康检查

curl -k https://nununununu.top:8443/health.txt

正常结果应该是:

ok

Git 保存和同步

查看改动:

git status

提交改动:

git add .
git commit -m "Update blog content"

推送 GitHub:

git push

从 GitHub 拉取:

git pull

手动备份

BACKUP_DIR=/home/ubuntu/blog-backups RETENTION_DAYS=14 /home/ubuntu/blog/scripts/backup.sh

查看备份:

ls -lah /home/ubuntu/blog-backups

自动备份

查看定时任务:

sudo crontab -u ubuntu -l

当前策略是每天凌晨 3 点备份,并向 Uptime Kuma Push 监控发送心跳。

从源码备份恢复

mkdir ~/restore-blog
tar -xzf /home/ubuntu/blog-backups/blog-src-YYYYMMDDTHHMMSSZ.tar.gz -C ~/restore-blog
cd ~/restore-blog
npm install
npm run build

从构建产物恢复线上页面

mkdir ~/restore-dist
tar -xzf /home/ubuntu/blog-backups/blog-dist-YYYYMMDDTHHMMSSZ.tar.gz -C ~/restore-dist
sudo rsync -a --delete ~/restore-dist/dist/ /var/www/html/

Uptime Kuma

管理后台:

http://nununununu.top:3001/

公开状态页:

http://nununununu.top:3001/status/oracle

建议监控项:

  • 博客首页:https://nununununu.top:8443/
  • 健康检查:https://nununununu.top:8443/health.txt
  • Kuma 自检:http://localhost:3001/
  • 备份 Push:每天凌晨 3 点应收到一次心跳

Docker 维护

查看容器:

sudo docker ps

查看 Uptime Kuma 日志:

sudo docker logs --tail 100 uptime-kuma

重启 Uptime Kuma:

cd /home/ubuntu/blog/monitoring/uptime-kuma
sudo docker compose restart

Nginx 维护

检查配置:

sudo nginx -t

重载配置:

sudo systemctl reload nginx

查看状态:

systemctl status nginx --no-pager

常见问题

文章不显示时,先检查有没有 draft: true

发布后页面没变时,重新执行:

npm run build
sudo rsync -a --delete dist/ /var/www/html/

监控面板打不开时,确认使用的是 HTTP:

http://nununununu.top:3001/

健康检查 404 时,确认地址是:

https://nununununu.top:8443/health.txt