#!/bin/bash
#配置定时任务
#crontab -e
#设置每周日的下午7点执行
#00 19 * * 7 sh /home/back_up_mysql/back_up_mysql.sh
baseDir=/home/back_up_mysql
#获取年月
Last_Ymonth=date -d last-month +%Y%m
Ymonth=date +%Y%m
#获取月日 并转为整数用于比较大小
Day=date +%Y%m%d
function S_backup_mysql() {
cd $
{baseDir}
rm -f $
1_bak_$
{Day}.sql
echo “开始备份数据库…”
mysqldump --defaults-extra-file=/etc/my.cnf -h服务器IP -u用户名 -p密码 $1
> ${baseDir}/$1
bak$
{Day}.sql
fn_log “备份$1
bak$
{Day}.sql” $1
}
function fn_log() {
if [ $? -eq 0 ]
then
echo “$1 successful.”
del_back_up $2
else
echo “$1 failed.”
echo “$1 失败.” | mail -s “$1备份执行失败” 邮箱地址(***@qq.com)
fi
}
function del_back_up() {
#删除上个月的数据备份sql
cd $
{baseDir}
rm -f $
1*$
{Last_Ymonth}sql
del_back_log "删除$
1$
{Last_Ymonth}*sql"
}
function del_back_log() {
if [ $
? -eq 0 ]
then
echo “$
@ successful.”
else
echo “$
@ failed.”
fi
}
S_backup_mysql 库名
S_backup_mysql 数据库名
#密码明文写在mysqldump之后会报错无法正常导出
#添加参数–defaults-extra-file=/etc/my.cnf 报错但可正常导出