二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Shell编程

    • 如何让不断增加的目录只保留五个文件
    • 那些使用字符画出来的画
    • 业务中期的日志备份操作过程
    • 关于sed命令当中包含变量的坑
    • 利用shell脚本将博客数据库备份到邮箱附件
      • 1,配置邮件。
      • 2,简单使用。
      • 3,投入使用。
  • Go编程笔记

  • 前端编程笔记

  • Go学习笔记

  • Vue-21年学习笔记

  • Vue-22年重学笔记

  • 编程世界
  • Shell编程
二丫讲梵
2018-12-11
目录

利用shell脚本将博客数据库备份到邮箱附件

文章发布较早,内容可能过时,阅读注意甄别。

玩个人博客的都知道,数据库备份必不可少,如果哪一天服务器直接挂掉,而且还没有备份,那基本上等同于丢失了命根子。因此日常的备份小脚本一定是不能少的。

因为个人玩家一般只有一台服务器,数据不能异地备份,因此这就想到,通过邮件附件的形式,保存到邮箱也是不错的选择。

# 1,配置邮件。

一般常规服务器自带发信端,我在自己本地测试也是很简单就实现了,但是阿里云服务器多少有一些不一样,所以需要一些注意的地方。

  • 安装发信组件。
yum install sendmail
1
  • 启动发信组件。
service sendmail start
1

接着配置邮件服务端信息:

vim /etc/mail.rc
在文件底部添加如下内容:
set from=Linuxlql@163.com
set smtp="smtps://smtp.163.com:465"
set smtp-auth=login
set smtp-auth-user=Linuxlql@163.com
set smtp-auth-password=xxxxxx  #改成你自己的
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
1
2
3
4
5
6
7
8
9

简单说明:

  • set from:发邮件时显示的发送方
  • set smtp:指定第三方发邮件的 smtp 服务器地址,普通服务器可以使用 25 端口,阿里云服务器测试需使用 465 端口。
  • set smtp-auth:邮件认证的方式,默认为 login
  • set smtp-auth-user:第三方发邮件的用户名
  • set smtp-auth-password:邮箱授权码

# 2,简单使用。

echo "testb" | mail -s "testa" Linuxlql@163.com
1

一个简单的发信方式,其中 testa 表示邮件的主题,testb 是邮件内容,等待一会儿,可以在邮箱看到这封邮件。

image

$echo "测试一下文本导入的方式" > aa.txt
$mail -s "testc" Linuxlql@163.com < aa.txt
1
2

通过读取文本内容的方式发送邮件,过一会儿可以看看收到的邮件是否正常。

image

$touch test
$echo "testb" | mail -s"testa"  -a test Linuxlql@163.com
1
2

将本地文件 test 作为附件发出,等下可以在邮箱当中验证一下。

image

# 3,投入使用。

最后在原来的备份脚本当中,做一下简单的调整,从而让每天把数据库文件备份到邮箱成为现实。

#!/bin/sh
curdate=`date "+%Y%m%d"`
backupdir=/backup
logfile=$backupdir/dump.log
expdays=32
expdir=`date -d "$expdays days ago" "+%Y%m%d"`
if [ ! -d "$backupdir/$curdate" ]; then
        mkdir -p $backupdir/$curdate
fi
for dbname in wordpress wiki
do
    echo "`date +"%Y-%m-%d %H:%M:%S"` $dbname begin export..." >> $logfile
    /usr//bin/mysqldump -uroot -ppassword --default-character-set=utf8mb4 $dbname | gzip > $backupdir/$curdate/$dbname.sql.gz
    echo "`date +"%Y-%m-%d %H:%M:%S"` export finished " >> $logfile
done
    tar cf $backupdir/$curdate.tar.gz $backupdir/$curdate &> /dev/null
    echo "备份文件在附件" | mail -s"$curdate日数据备份"  -a /backup/$curdate.tar.gz Linuxlql@163.com &> /dev/null
    rm -rf $backupdir/$curdate
if [ -d "$backupdir/$expdir" ]; then
    rm -rf $backupdir/$expdir
    echo $backupdir/$expdir >> $logfile
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

执行一下,然后去邮箱看看是否成功了:

image

微信 支付宝
上次更新: 2024/07/04, 22:40:37
关于sed命令当中包含变量的坑
go日常开发代码片段

← 关于sed命令当中包含变量的坑 go日常开发代码片段→

最近更新
01
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
05-16
02
学习周刊-总第211期-2025年第20周
05-15
03
记录二五年五一之短暂回归家庭
05-09
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式