您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 清远分类信息网,免费分类信息发布

mysql数据库自动备份,并发送邮件通知

2024/3/14 13:38:44发布32次查看
一前提系统环境:centos6.1脚本作用:备份指定服务器上的指定数据库,并通过scp传送到另一台备份主机,然后发送备份是否成功邮件到指定邮箱思路:首先在备份脚本
一 前提
系统环境:centos6.1
脚本作用:备份指定服务器上的指定数据库,并通过scp传送到另一台备份主机,然后发送备份是否成功邮件到指定邮箱
思路:首先在备份脚本中把备份报告导出为一个db_backup.log文件,然后邮件脚本会把这个log内容作为邮件内容发送给指定用户,也就实现了邮件通知
说明:如果需要备份到远程主机,需要首先做好ssh密钥认证,scp要使用到
二 备份脚本
备份脚本用法:如果需要备份某个数据库,在脚本后面添加一条备份命令,像下面这样
backup_db  10.90.5.50         dbname         mysql             123456   innodb
函数名     mysql所在ip  所要备份的数据库名   连接数据库用户名  密码     数据库引擎类型
#!/bin/bash#name:backup_db.sh#purpose: backup mysql database#author: xxx#date: 2014-08-26#useage:backup_db ip databasename user password dbtype#example:backup_db 10.90.5.50 dbname mysql 123456 innodb#备份时间date=`date -dtoday +%y%m%d_%h%m%s`#前一个时间date2=`date -d1 month ago +%y%m%d_%h%m%s`#备份目录homedir=/data/dbdata_backupmysqldump='/usr/local/mysql/bin/mysqldump'#删除上一次备份报告rm -f $homedir/db_backup.log#################################################################function#############################################################################backup functionbackup_db (){ if [ $# -ne 5 ];then echo usage: backupdb ip dbname user password dbtype echo please try again exit 1 fi ip=$1 dbname=$2 user=$3 password=$4 dbtype=$5 echo --------------------------start backup $ip $dbname db------------------------------------- >> $homedir/db_backup.log echo start date: `date +%y%m%d_%h%m%s` >> $homedir/db_backup.log if [ $dbtype = innodb ];then $mysqldump -u$user -p$password -h$ip --single-transaction --flush-logs --routines --events --master-data=2 $dbname > $homedir/$dbname/${dbname}_$date.sql if [ $? -ne 0 ];then echo $ip $dbname $dbtype db  backup is not success ,please check it out! >> $homedir/db_backup.log else echo $ip $dbname $dbtype db  backup is success! >> $homedir/db_backup.log fi else  $mysqldump -u $user -p$password -h$ip -l --flush-logs --routines --events --master-data=2 $dbname > $homedir/$dbname/${dbname}_$date.sql                if [ $? -ne 0 ];then                        echo $ip $dbname $dbtype db  backup is not success ,please check it out! >> $homedir/db_backup.log                        else                        echo $ip $dbname $dbtype db  backup is success! >> $homedir/db_backup.log                fi fi echo end date: `date +%y%m%d_%h%m%s` >> $homedir/db_backup.log gzip $homedir/$dbname/${dbname}_$date.sql size=`du -sh $homedir/$dbname/${dbname}_$date.sql.gz | awk '{print $1}'` echo the file size is: $size >> $homedir/db_backup.log echo --------------------------end backup $ip $dbname db------------------------------------- >> $homedir/db_backup.log #delete the backup files which were create two month ago rm -f $homedir/$dbname/${dbname}_$date2.sql.gz}#scp function : scp the backup file to another server as different place backupscp_function (){        if [ $# -ne 1 ];then                echo usage: scp_function dbname                echo please try again                exit 1        fi dbname=$1 scp -p52814  -i /home/lj/.ssh/id_rsa $homedir/$dbname/${dbname}_$date.sql.gz lj@10.90.5.50:/data/dbbackup/ if [ $? -ne 0 ];then echo $dbname db backup data transfer is not success ,please check it out! >> $homedir/db_backup.log else echo $dbname db backup data transfer is success! >> $homedir/db_backup.log fi}##########################################################################function###################################################################使用perl命令执行邮件脚本,,以发送备份报告,其中的sendmail.pl为下面发邮件脚本perl /home/scripts/sendmail.pl
三 发送邮件脚本
清远分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录