CentOS7下mysql定时备份并发送邮件到指定邮箱脚本

网上有对应的教程,但是使用的mutt发送的邮件。

我从昨晚九点开始搞,搞到凌晨三点都没弄好,早上又搞了一早上也没弄好。因为网上的教程太老,或者使用的gmail邮箱,在使用gmail邮箱的时候,需要开启应用授权。但这还不是最致命的,在我配置好了一切之后,发觉smtp.gmail.com是被墙掉的(服务器环境,平常自己电脑都是默认开启vpn的,所以对墙没墙不是很敏感),所以无法使用,上面的所有步骤主要参照以下两个文档。(我本人能力有限,没有成功)

使用mutt发送邮件:
http://www.jianshu.com/p/bebbf2db2cd8
google使用应用专用密码登录:
https://support.google.com/accounts/answer/185833

发觉smtp.gmail.com 被墙之后很自然的想法就是mutt+163,但是我尝试了很久,没有弄好(真的是能力有限,水平一般)。

后来发现linux自带有mail,和mutt对比之后,发觉mutt的那些所谓的优点对于我这个功能都不是必须的,mail玩完全可以满足我的需求,所以最后选用的就是mail发送邮件。

以下介绍的就是如何让mysql定时备份并使用mail发送邮件到指定邮箱

首先确保你的mail是安装好的了,参照以下文档

How To Send E-Mail On CentOS 7 :
https://gist.github.com/ilkereroglu/aa6c868153d1c5d57cd8

需要注意的是最后的配置阶段,需要按照如下的配置来(163邮箱)

  1. vim /etc/mail.rc
set smtp=smtps://smtp.163.com:465
set from=qpwchina@163.com #换成你自己的邮箱地址
set smtp-auth=login
set smtp-auth-user=qpwchina@163.com  #换成你自己的邮箱地址
set smtp-auth-password=yourpassword   # 你的授权码,使用smtp需要打开授权,不能使用原来的密码
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
  1. 创建sh脚本 vim /yourpath/sql_back.sh
DATE=`date+%Y%m%d`
mysqldump -uroot -pyourPassword --all-databases > /yourpath/back.sql
tar zcvfP /yourpath/db_${DATE}.sql.tar.gz  /yourpath/back.sql
echo 'email content' | mail -a /yourpath/db_${DATE}.sql.tar.gz -s 'back sql' qupengwei2008@qq.com
rm -rf /yourpath/db_${DATE}.sql.tar.gz

以上代码简单解释一下。

  • 声明了一个变量(之后会作为备份文件的名称)
  • 使用mysqldump备份数据库,我这里备份的是所有的数据库(–all-databases)
  • 压缩数据库备份文件(不是必须的,备份文件为文本压缩率会很高,节省空间和流量的效果很明显,所以选择了压缩)
  • 发送邮件(邮件正文为’email content’,添加压缩好的sql备份为附件(-a attachment),邮件主题(-s subject)为‘back sql’,发送给qupengwei2008@qq.com
  • 删掉本地的备份文件(非必需)
  1. 设置定时任务 crontab -e

    然后在打开的界面中添加一行 0 1 * * * /yourpath/sql_back.sh保存

    这个定时任务的含义是 每天凌晨一点整执行sql_back.sh脚本。

    你可以通过crontab -l查看所有定时任务,对crontab不熟悉的请自行百度。

个人博客地址:http://blog.qupengwei.top/

CentOS7下mysql定时备份并发送邮件到指定邮箱脚本相关推荐

  1. RouterOS(ROS)定时备份配置并发送至邮箱脚本

    总所周知,RouterOS(ros)配置较为繁琐,但稳定性奇高,当ROS配置出现问题手里又没备份的时候,就又重新配置一遍ROS,耗时耗力不说,关键是糟心,本文内容讲解如何通过ROS脚本实现定时备份RO ...

  2. linux java mysql 备份 runtime_Linux下mysql定时备份脚本以及java实现

    sh脚本介绍 #!/bin/bash ####################################################### # crontab 定时备份########### ...

  3. Windows下Mysql定时备份的实现

    使用mysql的mysqldump命令,结合windows的任务计划程序,可以实现Mysql数据的自动备份. 一.批处理文件bat的创建 @echo off set "Ymd=%date:~ ...

  4. centos7下mysql定时全量备份、增量备份实现方法

    最近学习的数据库自动定时备份的方法,从网上看的很多资料,大部分文章都是用的脚本之家的那个模板(原代码地址:https://www.jb51.net/article/99938.htm),但是都没有很详 ...

  5. linux下mysql定时备份命令

    linux下,如需对mysql做备份,可以做个shell文件,一劳永逸 [root@iZ2zeavn7cbxg2g9bs5donZ mysqlbackup]# cat mysql_backup.sh ...

  6. linux下mysql定时备份数据库

    一.用命令实现备份 首页进入mysql的bin目录 1.备份数据 #mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql ...

  7. Windows下 mysql定时备份

    ** 使用mysqldump进行数据库备份 ** mysql数据库自带备份命令mysqldump,可对数据库进行备份操作 最简单的备份是将数据库备份至本地,生成 **.sql文件 编写备份脚本文件 ( ...

  8. CentOS7环境下MySQL定时备份

    1.新建备份脚本 vi /home/mysqlbak/mysql_bak.sh填入以下内容: mysql_user="USER" #MySQL备份用户 mysql_password ...

  9. mysql 打包 脚本_windows下mysql自动备份压缩打包时间命名批处理脚本

    我在此文章上做修改:把时间修改成不记录小时分和秒 新建一个名字后缀为".bat"的文件 set d=%date:~0,10% set d=%d:-=% set t=%time:~0 ...

最新文章

  1. 怎么看rabbitmq的浏览器信息_买房沙盘怎么看?沙盘也可以看出很多信息的
  2. 厉害了!用 JS 实现人脑和计算机交互
  3. 一个简单的线性拟合问题,到底有多少种做法
  4. UWP x:bind
  5. 在线服务器和客户端聊天,实验三、客户端和服务器能实现简单的聊天功能
  6. [转载]Programming MS Office 2000 Web Components第二章第三节
  7. Python-爬虫-针对有frame框架的页面
  8. SQL Drop数据库– MySQL,PostgreSQL,SQL Server
  9. 【EOS】2.3 深入理解ABI文件
  10. 数据分析数据可视化(二)
  11. 操作系统-管程、进程和线程之间的差别
  12. PHP 工厂模式浅析
  13. 【多媒体封装格式详解】---MKV【2】
  14. python爬虫:爬东方财富网平安银行历史资金流向并写入MySQL
  15. python爬虫实例(百度图片、网站图片)
  16. Android 进阶——系统启动之核心SystemServer进程启动详解(七)
  17. epub转pdf网站推荐
  18. 洗牌 --网易有道2017内推编程题
  19. 电路板上的黑色小圆“疙瘩”到底是什么?有什么用?
  20. 【2022/1/12】think-swoole使用教程

热门文章

  1. 搭建springcloud微服务下的网关Netfilx Zuul
  2. 科普系列--天气气象的监测和设备
  3. KEUC首次落地中国,网易云深度剖析Kubernetes优化与实践
  4. 2017中国(郑州)国际医药保健品及福祉产业交易会会刊(参展商名录)
  5. 计算机术语什么叫袜子,大电脑织袜机部分功能操作与说明
  6. php 加减速 操作,手动挡减挡减速正确方法 加挡先加速减挡先减速
  7. 固态硬盘开卡维修教程,MAP1202、IG5236、SM2259XT2等主控均适用
  8. 新建小程序项目提示:登录用户不是该小程序的开发者
  9. 唯晶科技宣布PSVR游戏《揭秘计划》将开源给合作伙伴
  10. API身份验证和授权介绍