数据库备份Shell

数据库备份及集成钉钉报警

#!/bin/bash

# BEGIN CONFIGURATION ==========================================================

BACKUP_DIR="/data/backup"  # The directory in which you want backups placed
KEEP_MYSQL="3" # How many days worth of mysql dumps to keep
MYSQL_HOST=`egrep -E "IPADDR=" /etc/sysconfig/network-scripts/ifcfg-* |egrep -v 127.0.0.1 |cut -f2 -d ":" |tr -d "IPADDR=" |sed 's@\"@@g' |head -n1`
MYSQL_USER="test"
MYSQL_PASS=""
TOKEN=""
MYSQL_BACKUP_DIR="$BACKUP_DIR"
#sendemail="$(which sendEmail)"
THE_DATE="$(date '+%Y-%m-%d')"
MYSQL_PATH="$(which mysql)"
MYSQLDUMP_PATH="$(which mysqldump)"
FIND_PATH="$(which find)"
TAR_PATH="$(which tar)"
SCP_PATH="$(which scp)"

# END CONFIGURATION ============================================================
# Announce the backup time
echo "Backup Started: $(date)"

# Create the backup dirs if they don't exist
if [[ ! -d $BACKUP_DIR ]]
  then
  mkdir -p "$BACKUP_DIR"
fi
if [[ ! -d $MYSQL_BACKUP_DIR ]]
  then
  mkdir -p "$MYSQL_BACKUP_DIR"
fi
cd $MYSQL_BACKUP_DIR
# Get a list of mysql databases and dump them one by one
echo "-----------------xtrabackup beginning-------------------"
$MYSQLDUMP_PATH  --host=$MYSQL_HOST --user=$MYSQL_USER --password=$MYSQL_PASS --single-transaction --set-gtid-purged=OFF  --master-data=1 -A > ${MYSQL_HOST}-${THE_DATE}.sql
 if [ "$?" != 0 ] ; then
head -n 30 /data/backup/2.log   > fialed.log
#find ip
#IP=$(/sbin/ifconfig -a| grep inet | grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
curl -H "Content-Type: application/json;charset='utf-8'" -X POST -d "{\"text\": {\"content\": \"$MYSQL_HOST 数据库备份失败\"},\"at\": {\"atMobiles\":\"\",\"isAtAll\": true},\"msgtype\": \"text\"}" "https://oapi.dingtalk.com/robot/send?access_token=$token"
exit;
fi
$TAR_PATH -czvf    ${MYSQL_HOST}-${THE_DATE}.tar.gz ${MYSQL_HOST}-${THE_DATE}.sql
$SCP_PATH  ${MYSQL_HOST}-${THE_DATE}.tar.gz 10.0.74.10:/data02/allbak-dba
rm -rf ${MYSQL_HOST}-${THE_DATE}.tar.gz
# Delete old dumps
echo "------------------------------------"
echo "Deleting old backups..."
# List dumps to be deleted to stdout (for report)
#cd $BACKUP_DIR
# Delete dumps older than specified number of days
$FIND_PATH $BACKUP_DIR  -mtime +$KEEP_MYSQL  -name  "${MYSQL_HOST}-*" -type f   -exec rm -rf {} \; 


# Announce the completion time
echo "------------------------------------"
echo "Backup Completed: $(date)"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

robin-cloud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值