前言

网站经常备份好处就是遇到问题以后可以迅速的恢复,不那么被动,防止信息丢失,操作性很大。虽然搭建一个网站非常容易,但为了应对网络上各种各样的意外情况,避免自己的网站付诸东流,做好网站备份是非常有必要的。

现在邮箱接收都支持附件文件,将网站文件和数据库文件备份到我们自己的邮箱也是一种很好地备份方式,也防止备份文件丢失。

邮箱接收附件文件大小,取决于使用的邮箱服务。一般来说个人博客网站源文件,数据库文件不大,常见邮箱服务都是可以使用的。

安装mailx

浏览器登录进入宝塔面板,左侧 终端 。首次使用宝塔终端,需要登录服务器,填写root用户密码后登录。

 title=

在终端中输入以下mailx安装命令,回车安装。

yum install -y mailx

 title=

编辑配置文件

安装完成后,编辑邮箱服务的相关配置文件。
在终端输入以下命令,然后回车进入编辑文件界面。

vim /etc/mail.rc

 title=

使用键盘上下键,找到大约69行位置,按‘i’键输入,添加以下配置。

set from=发件人@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=发件人@qq.com
set smtp-auth-password=邮箱密码/SMTP授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb

set from: 发送邮件后显示的邮件发送方 需要修改为自己的邮箱
set smtp: SMTP邮箱服务器网址及端口 需要修改
set smtp-auth-user: 发送邮箱 需要修改
set smtp-auth-password: 邮箱密码或者SMTP授权码 需要修改
set smtp-auth: 动作、登录 无需修改
set ssl-verify: ssl验证,ignore 忽略
set nss-config-dir: 证书存放目录 无需修改

请将配置按要求修改为自己所使用的邮箱服务配置。服务器需要开启465端口。

 title=

 title=

配置修改完成后,按Esc键,输入:wq回车保存退出编辑界面。

测试发送邮件

在终端输入发送测试邮件命令,需要修改收件人邮箱,回车执行。

echo"这是一封测试邮件" | mail -s "邮件主题" 收件人@qq.com


查看邮箱是否收到测试邮件。
如果发现终端报以下错误(但没有影响收件),没有错误请跳过。

Error in certificate: Peer's certificate issuer has been marked as not trusted by the.
Ctrl+C结束命令后,修改邮箱服务配置文件,将set ssl-verify=ignore修改为set ssl-verify=strict后保存退出(编辑方法同上)。

 title=

修改完成后在终端输入以下命令。

获取邮件服务器证书

echo   -n " " |  openssl s_client -connect smtp.qq.com:465 | sed -ne  '/-BEGIN CERTIFICATE-/,/-END CERTIFIICATE-/p'  >  /etc/pki/nssdb/qq.crt

把证书添加到受信任表

certutil    -A    -n   'yeah'    -t    "P,P,P"    -d    /etc/pki/nssdb    -i    /etc/pki/nssdb/qq.crt

注:如果是163或者其他邮箱服务器请将smtp.qq.com改为smtp.163.comqq.crt改为163.crt 以此类推。

命令执行完成后,重新执行发送测试邮件命令,不在报错。

 title=

宝塔定时任务

左侧计划任务

添加网站备份和数据库备份计划任务,执行时间,保留文件数量等可根据需要设置。

 title=

然后添加 shell 脚本任务,在脚本内容中添加以下脚本命令,修改收件人为自己的邮箱。

#!/bin/bash
cd /www/backup/site
for file in $(ls *)
do
  str="${str} -a ${file}"
done
echo "主人,今天的网站备份又到了哦,请注意查收!" | mail -s "网站备份" $str 邮箱@qq.com

 title=

数据库备份和网站备份一样需要再添加一次计划任务,然后将执行脚本中的cd /www/backup/site<span> </span>(网站备份文件所在目录)修改为cd /www/backup/database(数据库备份文件所在目录)即可,可参考改一下邮件主题,和内容信息。

完全备份网站和数据库需要4个计划任务,分别是宝塔自带的备份网站和备份数据库两个计划任务,然后是两个脚本任务。

脚本任务的执行时间必须晚于网站备份任务和数据库备份任务执行时间,否则备份到邮箱的文件不是最新备份。

举例: 网站备份和数据库备份任务的执行时间是每天0小时30分钟,备份脚本任务执行时间则设置为每天0小时40分钟或者50分钟等等

实现原理: 先让宝塔执行网站和数据备份任务,将网站文件和数据库文件备份到 /www/backup 目录,再执行脚本任务,将目录中最新的备份文件发送到邮箱。

计划任务添加完成后,先执行网站,数据库源文件备份任务,再执行网站,数据库邮箱shell脚本备份任务,然后前往邮箱查看文件是否收到,文件过大,邮件会有延迟。

 title=

 title=

注:如果有报错或收不到邮件情况,请仔细检查命令,配置文件是否有误,或者查看脚本执行日志进行排查。

最后修改:2022 年 11 月 20 日
若您觉得我的文章有用请赞赏一下吧~