该脚本支持自动备份,自动上传到FTP服务器,备份失败自动发送报警邮件
#!/bin/sh #Create by JIANGLEI.YU ON 20160421 #使用测脚本需要先安装mutt邮件发送工具。 #使用使用自动化安装。详细请参考 http://yujianglei.blog.51cto.com/7215578/1765938 #Define MySQL Environments Hostname='192.168.0.141' Port='3306' Username='root' Password='123456' Mysqldump=$(which mysqldump) Gzip=$(which gzip) Destinaion_dir='/home/bak/database/data' Timestamp=$(date +%Y%m%d%H%M%S) Database='virtual' Alarm_User="15011254881@139.com" File_Name="$Timestamp-$Database.sql.gz" #File_Name="20160421110453-virtualsdk.sql.gz" #Define Ftp Environments Ftp_Host='192.168.0.136' Ftp_Port='21' Ftp_User='yujianglei' Ftp_Pass='yujianglei' RPM=$(which rpm) function check_result(){ if [ $? != 0 ];then echo "Backup Database Failed" | mutt -s "$Database Backup Database Failed" ${Alarm_User} exit 1 else echo "Backup Database Successful" | mutt -s "$Database Backup Database Successful" ${Alarm_User} fi } function bakcup(){ [ ! -d ${Destinaion_dir} ] && mkdir -p ${Destinaion_dir} Cmd="$Mysqldump -h$Hostname -p$Port -u$Username -p$Password" Parameter="--flush-privileges --opt -R -E --triggers --single-transaction -F" $Cmd $Parameter $Database | gzip >${Destinaion_dir}/${File_Name} check_result $? } function upload_ftp(){ $RPM -q ftp [ $? != 0 ] && yum install ftp -y ftp -n ${Ftp_Host} ${Ftp_Port} << END user ${Ftp_User} $Ftp_Pass lcd ${Destinaion_dir} cd database put ${File_Name} quit END check_result $? exit 0 } bakcup upload_ftp