欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Linux备份MySQL-通过邮件自动发送到指定邮箱

程序员文章站 2022-05-26 10:09:20
...

1.所需要软件mutt Linux下命令行邮件工具,可用来接收和发送邮件sendmail/postfix Linux下邮件服务器,所有邮件通过本机发送出去

1.所需要软件

mutt Linux下命令行邮件工具,可用来接收和发送邮件

sendmail/postfix Linux下邮件服务器,所有邮件通过本机发送出去

mysqldump 备份MySQL数据库的程序

2.mutt参数介绍

-a 附件

-s 主题

例子:

echo "你好,,祝你愉快!" | mutt -a /etc/passwd -s "Linux发送带附件的邮件" cc2@cc2.cc

说明:echo打印的内容为邮件正文,发送密码文件passwd到邮箱cc2@cc2.cc

3.脚本

测试备份的数据库名:

scriptdev2 realmd mmfpm mangos characters

查看数据库使用的字符集

show variables like "char%";

utf8

建立备份脚本

vi /root/send-mysql-data.sh

#!/bin/bash

#Power by hugwww 2009-4-11

#set time format

date=`date -d "%m"date -d today +"%Y-%m-%d-%H:%M"`

echo $date

#定义数组

db_array=(scriptdev2 realmd mmfpm characters mangos)

#取数组无元素个数

lenArray=${#db_array[@]}

#循环列出数组元素

i=0

while [ $i -lt $lenArray ]

do

#执行备份

mysqldump -uroot -ppassw0rd --default-character-set=utf8 --opt --extended-insert=false \

--triggers -R --hex-blob -x ${db_array[$i]} > /opt/db-backup/everyday/${db_array[$i]}-$date.sql;

# echo ${db_array[$i]}

let i++

done

#将所有SQL文件压缩到一个文件

tar cvzf /opt/db-backup/mysql-data-$date.tar.gz /opt/db-backup/everyday/*$date.sql

#发送备份文件到邮箱

echo "$date 数据库备份文件" | mutt -a /opt/db-backup/mysql-data-$date.tar.gz -s "mangos数据库备份" cc2@cc2.cc

echo "$date 备份成功并发送到指定邮箱" >> /opt/db-backup/backup.log

exit

完成

Linux备份MySQL-通过邮件自动发送到指定邮箱