Typecho数据库自动备份至邮箱

不考虑备份网站样式,只备份数据库信息的办法,定期发送至 QQ 邮箱,可永久保存。

正常步骤

第一步

下载 Jrotty 维护的 AutoBackup 插件,仓库地址

第二步

将插件改名为AutoBackup,放到usr/plugins/目录下,到 Typecho 后台开启插件并进行配置。

第三步

到 QQ 邮箱网站申请一个 SMTP 服务的授权码。

第四步

需要配置的信息如下:

  1. SMTP 地址:smtp.qq.com
  2. SMTP 端口:465
  3. SMTP 用户:你的 QQ 邮箱

[note type=”info flat”]变量名是 JavaScript 写法,大家记得去掉括号。[/note]

  1. SMTP 密码:第三步获得的授权码
  2. SMTP 加密模式:SSL 加密
  3. 接收邮箱:你的 QQ 邮箱
  4. 定时任务接口秘钥:第三步获得的授权码

[note type=”info flat”]此插件还有一种备份模式,是检测到新文章或者新评论就备份,那就将定时任务接口秘钥留空,打开监听文章接口这一开关。[/note]

第五步

测试。浏览器访问定时任务接口地址:http://{{你的IPV4}}/index.php/autobackup?taken={{第三步获得的授权码}},如果有报错信息,则排查问题。无报错信息,网页一片空白,邮箱里应该就接收成功了。

第六步

将此网址设置一个定时访问的任务,宝塔面板有图形化设置,我没有安装,直接在 linux 操作。

1
2
3
4
crontab -e
# 进入vim编辑模式,在最后加入新行
# 分钟 小时 日 月 周 命令
0 0 * * 3 curl -sSL http://{{你的IPV4}}/index.php/autobackup?taken={{第三步获得的授权码}}

应该就大功告成了。我这个任务是每周三晚上 0 点进行一次,访问这个链接触发备份。

我碰到的问题

进行第五步测试的时候,报错了一些什么文件无法创建,无法读取等等一堆错误,找到原因是 web 服务的用户对这个文件夹没有读写权限,简单处理就是直接给他加权限。
   1. 查看 web 服务的用户名,我使用的是Nginx服务器。

1
ps aux | grep nginx

得到除了root用户之外的 web 服务用户叫nobody
   2. 升级权限。

1
sudo chown -R nobody:nobody /usr/local/lighthouse/softwares/typecho/usr/plugins/AutoBackup/
  1. 再次测试,成功。

Typecho数据库自动备份至邮箱
http://sinlatansen.github.io/2024/02/06/Typecho数据库自动备份至邮箱/
作者
fugu
发布于
2024年2月6日
许可协议