Linux定时备份数据库到指定邮箱的方法

一、配置邮箱

这里使用的是网易邮箱126邮箱的STMP服务,服务器是smtp.126.com。如果你使用其它第三方邮箱,在帐号设置那里一般都有说明SMTP服务器地址。

如果你的Ubuntu没有安装mail模块,则需要执行这条命令来安装邮件模块:

root@name:~# apt-get install mailutils

打开mail配置文件

vim /etc/mail.rc

在结尾部分加上这些设置

set from=test@126.com smtp=test@126.com
set smtp-auth-user=test@126.com smtp-auth-password=mypassword smtp-auth=login

测试邮件是否发送成功:

echo "test content" | mail -s "mail title" myqq@qq.com

解释:test是邮件内容,mail title是邮件标题,xxxx@qq .com表示你要发送到这个邮箱地址。成功收到邮件,没问题。

二、备份Mysql数据库

备份Mysql使用mysqldump命令,先来熟悉一下,待会再改进

mysqldump -u数据库帐号 -p数据库密码 数据库名 > "/tmp/bak.sql"

执行以上命令,进入/tmp/bak.sql备份文件是否存在,存在就OK了,注意 -p数据库密码之间没有空格。

编写脚本和定时任务

万事俱备,接下来要做自动化工作:建立一个备份脚本,并使用定时任务每天执行它。

在某个目录建立一个SHELL脚本,为了简单说明我直接建在/back_mysql.sh,内容如下

vim /back_mysql.sh

#!/bin/bash
#Send the mysql of backup file to email
#Author Melon
#Version 0.1
#根据日期命名备份文件
filename=`date +%Y-%m-%d`"-blog-bak.sql"
path="/tmp/"$filename
#执行备份
/usr/bin/mysqldump -u数据库帐号 -p数据库密码 数据库名 > $path
#发送邮件
#删除临时文件
echo "邮件内容" | mail -s $filename -a $path 邮箱
rm -f $path

/usr/bin/mysqldump是完整的命令路径,如果你不知道命令的完整路径,可以使用whereis 命令名来查看 使用crontab建立定时任务,每天的0时0分执行

crontab -e
0 0 * * * /bin/sh /back_mysql.sh

你可以设置其它时间段发送,具体crontab的用法请自行搜索。

使用zip命令打包文件并加密

可能会觉得直接发sql文件不够安全,或者还有其它文件比如附件要一起发送,下面我将使用linux zip命令对附件和sql文件一起加密打包,完整代码如下,详细不一一说明了

#!/bin/bash
#Send the blog of backup file to email
#Author Melon
#Version 0.2
#zip文件名
filename=`date +%Y-%m-%d`"-blog-bak.zip"
#zip文件路径
path="/tmp/"$filename
#sql备份文件路径
mysqlpath="/tmp/blog.sql"
#附件备份路径
uploadpath="/tmp/uploads"
/usr/bin/mysqldump -u数据库帐号 -p数据库密码 数据库名 > $mysqlpath
#创建附件备份(这是我博客的附件位置)
cp -r "/www/blog/usr/uploads/" "/tmp/"
#加密打包,>/dev/null 2>&1表示信息重定向,方便调试时不输出加密信息,你也可以省略
/usr/bin/zip -P 加密密码 -r $path $mysqlpath $uploadpath >/dev/null 2>&1
echo "邮件内容" | mail -s $filename -a $path 邮箱
#删除备份文件
rm -f $path $mysqlpath
rm -rf $uploadpath

总结

以上所述是小编给大家介绍的Linux定时备份数据库到指定邮箱,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Linux VPS备份教程 数据库/网站文件自动定时备份

    几天写过两篇使用VPS的安全性设置的博文,其实不管我们如何设置安全,及时的备份VPS数据才是最为重要的.因为VPS与主机不同,主机可能很多时候服务商代为我们备份,VPS的操作和安全性大部分都需要我们自己来负责,即便很多VPS上提供每日备份服务,但是不可确定因素实在太多.比如商家跑路.母机硬盘损坏.不可控因素等. 关于VPS备份教程方法可用的方法也很多,比如我们常规的备份直接通过FTP下载,MYSQL数据库导出也是可以操作的,但是这些都比较麻烦,而且还需要人为去执行.这篇文章老左分享目前大家比较常

  • linux实现mysql数据库每天自动备份定时备份

     概述 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好数据库的备份是至关重要的! 备份是什么? 为什么要备份 容灾方案建设 存储介质 光盘 磁带 硬盘 磁盘阵列 DAS:直接附加存储 NAS:网络附加存储 SAN:存储区域网络 云存储 这里主要以本地磁盘为存储介质讲一下计划任务的添加使用,基本的备份脚本,其它存储介质只是介质的访问方式可能不大一样. 1.

  • Linux shell实现每天定时备份mysql数据库

    每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求:   1,每天4点备份mysql数据:   2,为节省空间,删除超过3个月的所有备份数据:   3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: #创建shell文件 vim backup_mysql.sh mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql find

  • linux每天定时备份数据库并删除十天前数据详细步骤

    每天定时备份数据库需要用到Linux的定时任务,利用Linux的crondtab 命令.下面我们来看详细步骤: 一.写好shell脚本 mysqlbak.sh #!/bin/sh mysqldump -uroot -pmysqlroot xhblt | gzip > /mysqlbak/`date '+%Y-%m-%d_%H:%M:%S'`.sql.gz find /mysqlbak/ -mtime +10 -name "*.sql.gz" -exec rm -rf {} \;

  • MySQL定时备份之使用Linux下的crontab定时备份实例

    1. Mysql备份某个数据库的命令 复制代码 代码如下: ##################################################################  # 备份某个数据库  ################################################################## # root 用户,创建备份目录  mkdir -p /usr/local/cncounter/mysql_dump  cd /usr/local/

  • Linux定时备份数据库到指定邮箱的方法

    一.配置邮箱 这里使用的是网易邮箱126邮箱的STMP服务,服务器是smtp.126.com.如果你使用其它第三方邮箱,在帐号设置那里一般都有说明SMTP服务器地址. 如果你的Ubuntu没有安装mail模块,则需要执行这条命令来安装邮件模块: root@name:~# apt-get install mailutils 打开mail配置文件 vim /etc/mail.rc 在结尾部分加上这些设置 set from=test@126.com smtp=test@126.com set smtp

  • 给Linux定时备份数据库的实现脚本

    目录 场景:服务器数据库需要实现每天定时备份 1.首先确定备份脚本放置位置 2.编写shell脚本 3.给bash增加权限 4.测试看看脚本是否是正确可执行的 5.打开定时任务 6.编辑内容 7.查看定时任务 crontab -l 8.踩坑 服务器数据实现还原 1. 首先对定时任务备份的数据进行解压 2.接着将数据导入到database中 场景:服务器数据库需要实现每天定时备份 1.首先确定备份脚本放置位置 个人放置在   /usr/local/backup文件下,取名文件     bkData

  • Docker容器定时备份数据库并发送到指定邮箱(设计思路)

    目录 一.背景: 二.设计思路: 三.编写启动脚本 四.构建镜像 五.添加边车容器 5.1 创建配置文件 5.2 创建有状态服务部署文件 六.测试 项目地址及使用说明:https://gitee.com/noovertime/mysqlmail 一.背景: 一开始的初衷是,想写一个脚本来监控服务器的高占用率进程并通过邮件发送给我,然后突发奇想,可以使用这种方式来备份我的数据库,开始动手! 二.设计思路: 通过编写shell脚本,调用linux的mail工具,mysqldump的方式来保存数据库的

  • linux定时备份MySQL数据库并删除以前的备份文件(推荐)

    备份数据库,这是必须会用到的,今天上午花了几个小时整理了一下,结果不错.下面详细的走一遍 一丶选择一个比较大位置来保存备份文件(创建文件就行) 使用mkdir来创建文件夹,这个简单. 二丶检查有没安装crond,如果没有,先安装 rpm -qa|grep cron  安装后会是 一般没有安装,所以先 yum -y install vixie-cron 然后再 yum -y install crontabs 这样服务就安装好了. 三丶写备份脚本 vi  /var/spool/cron/name.s

  • linux定时备份mysql并同步到其它服务器

    数据在任何一家公司里面都是最核心的资产,定期备份则是为了保证数据库出现问题的时候能够及时回滚到最近的备份点,将损失缩小到最小 这篇文章将会两部分来说明: 1.mysql的定期备份: 2.同步到其它服务器 mysql 备份 备份还原某个数据库 备份还原 # 导出数据库 /usr/bin/mysqldump -u root -ppwd database > database20160929.sql # 导入数据库 mysql -u root -p database < database201609

  • MySQL定时备份数据库(全库备份)的实现

    目录 一.MySQL数据备份 1.1. mysqldump命令备份数据 1.2. mysqldump常用操作示例 1.3. 还原mysql备份内容 二. 编写脚本维护备份的数据库文件 2.1. 编写BASH维护固定数量备份文件 2.2. 使用crontab定期执行备份脚本 一.cron服务 二.crontab语法 三.创建cron脚本 三.执行效果截图 本文参考: 一.MySQL数据备份 1.1. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具m

  • Navicat for MySQL定时备份数据库及数据恢复详解

    在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库.本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电影等设置,希望对您有所帮助,如果文章中存在错误或不足之处,还请海涵~ 一. 设置计划任务定时备份数据库 计划任务就是让电脑在指定的时间内执行指定的动作,这些动作可以是一个程序,也可以是一个批处理,但是至少是可以运行的!其实再通俗一点也就是相当于你在那个时间里面进行了对某个东西对鼠标双击的操作. 1.

  • MySQL定时备份数据库操作示例

    本文实例讲述了MySQL定时备份数据库操作.分享给大家供大家参考,具体如下: 1. 查看mysqldump root@laowang:/# which mysqldump /usr/bin/mysqldump 2. 编写脚本 编辑my.cnf文件, 指定账号与密码, 然后在脚本中引用 root@laowang:/# vim /etc/my.cnf [mysqldump] user=root password=root 脚本文件 root@laowang:/var/backups# vim mys

  • Linux解压文件到指定目录的方法

    本文介绍了Linux解压文件到指定目录的方法,分享给大家,具体如下: tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数: -x : 解压缩压缩档案的参数: -z : 是否需要用gzip压缩: -v: 压缩的过程中显示档案: -f: 置顶文档名,在f后面立即接文件名,不能再加参数 举例: 一,将整个/home/www/images 目录下的文件全部打包为 /home/www/images.tar

随机推荐