干货操作:shell脚本实现数据库备份-----------------------------小董偷懒系列

shell脚本实现数据库备份

前言:

  • 日常备份数据库的操作,用于日常维护,一键操作,操作成功与否一键发送邮件通知。
  • 可能代码有点low,大神请给出意见,感谢!
    在这里插入图片描述
#!/bin/bash
BACK_DIR=/home/backup
DATE=$(date +%F)
MYSQL_USER=root
MYSQL_PASSWORD=123
RECIVE_USER=13222000226@163.com
SUBJECT="数据库备份状态通知"

[ -d $BACK_DIR ] || mkdir -p $BACK_DIR

START_TIME=$(echo "$(date +%F_%T)")
mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD -B wg > $BACK_DIR/wg-$DATE.sql
if [ $? -ne 0 ];then
   echo "备份失败!账号密码不正确" 
   exit 
fi

tar zcPf $BACK_DIR/wg-$DATE.tar.gz  $BACK_DIR/wg-$DATE.sql  && rm -f $BACK_DIR/wg-$DATE.sql


if [ -f $BACK_DIR/wg-$DATE.tar.gz ];then
   echo "wg数据库备份成功!"
   END_TIME=$(echo "$(date +%F_%T)")

   expires_file=$(find $BACK_DIR -type f -mtime +2)
   rm -f $expires_file && echo -e "删除过期文件:\n $expires_file"
   echo "正在发送邮件..."
   /usr/local/sbin/mail.py $RECIVE_USER $SUBJECT "$(echo -e "开始的时间:$START_TIME\n结束时间:$END_TIME\n备份的数据库:wg\n状态:成功\n清理的过期文件:\n$expires_file" )"
   [ $? -eq 0 ] && echo "邮件发送成功" || echo "邮件发送失败"
else
   echo "wg数据库备份失败!"
   END_TIME=$(echo "$(date +%F_%T)")

   expires_file=$(find $BACK_DIR -type f -mtime +2)
   rm -f $expires_file && echo -e "删除过期文件:\n $expires_file"
   echo "正在发送邮件..."
   /usr/local/sbin/mail.py $RECIVE_USER $SUBJECT "$(echo -e "开始的时间:$START_TIME\n结束时间:$END_TIME\n备份的数据库:wg\n状态:失败\n清理的过期文件:\n$expires_file" )"
   [ $? -eq 0 ] && echo "邮件发送成功" || echo "邮件发送失败"
fi
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值