博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql备份脚本
阅读量:6983 次
发布时间:2019-06-27

本文共 2036 字,大约阅读时间需要 6 分钟。

在网上看了几个脚本根据网上的稍微修改了下,稍微更准确了点,就是缺少记录日志的功能,还没想好怎么写,后续添加

#!/bin/bash

#做大备份数量
Backup_Max_Files=20
#数据库备份目录
WORKING_DIR=$(dirname "$0")
export WORKING_DIR=$(cd -P "$WORKING_DIR"/ > /dev/null; pwd)
#数据库IP地址、帐号、密码
DB_Host="XXXXXXX"
DB_User="XXXXXX"
DB_Password="XXXXXXX"
#需要备份的数据库
Databases=(
"mysql"
"zabbix"
)

#==========

echo "###########Bash Shell MySql Databases Backup Tools!"

#定义变量=当前日期

Date_Time=$(date +%F)

#定义备份文件前缀

BackDataFile=zhang"${Date_Time}"
cd $WORKING_DIR
mkdir $BackData_File
#统计需要备份数据库的个数
count=0
while [ "x${Databases[count]}" != "x" ]
do
count=$((count + 1))
echo "Databases=$count"
done
echo "[+] ${count} The database is about to be backed up"

for Databases in ${Databases[@]}

do
echo "[+] MySql-backing up: ${Databases}"
echo -n " MySql Backup Start: "
echo $(date +"%Y-%m-%d %H:%M:%S")
#使用Mysqdump工具进行逻辑备份(全备)并使用邮件脚本发送成功失败提醒
if $(mysqldump -h${DB_Host} -u${DB_User} -p${DB_Password} --single-transaction --flush-logs mysql > ${BackData_File}/${Databases}.sql )
then
echo " Success OK!: Mysql database backup success!"
python /root/jiaoben/mail.py "y@163.com" "${Databases}数据库备份成功" "${Databases}>数据库备份成功"
else
echo " Error NO!: Failure of MySQL database backup!"
#python /root/jiaoben/mail.py "y@163.com" "${Databases}数据库备份失败" "${Databases}>数据库备份失败请查看"
fi
echo -n "Backup success: "
echo $(date +"%Y-%m-%d %H:%M:%S")
done
echo
echo "[+] Packaging and compressing folders with Tar ...."
#使用tar命令打包并压缩生成的数据库文件
cd $WORKING_DIR
tar -cv ${BackData_File} | bzip2 > ${BackData_File}.tar.bz2 && rm -rf ${BackData_File}
#删除n天以前备份的数据文件

echo "[+] Delete over time database backup files ...."

find $WORKINGDIR -name "zhang*.tar.bz2" -mtime +${Backup_Max_Files} -exec rm -rf {} \;

#find $WORKINGDIR -name "zhang*.tar.bz2" -mtime +${Backup_Max_Files} -exec ls {} \;

后补:邮件报警脚本(网络版,已测试可以使用没有问题)

#!/usr/bin/python
coding=utf-8

#测试方法:python 5.py XXXXX@163.com test test

#能正常发送邮件说明成功 
import smtplib
import sys
from email.mime.text import MIMEText

class send_mail():

 

本文转自 zhangguangyi 51CTO博客,原文链接:http://blog.51cto.com/bosszhang/2059523

转载地址:http://puxpl.baihongyu.com/

你可能感兴趣的文章
摄像机平滑更随脚本
查看>>
Struts2 标签配置详细
查看>>
需求管理工具比较 Doors_Requistie Pro_RDM
查看>>
centos+php+nginx的php.ini无法加载的问题
查看>>
从菜鸟到专家的五步编程语言学习法
查看>>
RequestQueue
查看>>
Android TextView 属性设置
查看>>
html元素分类以及嵌套规则
查看>>
android dpi
查看>>
C语言的预处理、编译、汇编、链接
查看>>
nginx的启动、停止、平滑重启
查看>>
(转)ASIHTTPRequest 详解, http 请求终结者
查看>>
编辑器实时保存内容
查看>>
COMPUTER HARDWARE OPENCART 主题模板 ABC-0059
查看>>
android listview item点击时更改textview的颜色 代码中实现
查看>>
How to install Docker on Ubuntu
查看>>
EXTjs
查看>>
开启win7 FTP 服务 无法登陆的原因
查看>>
SSO之CAS单点登录详细搭建
查看>>
开发自定义JSF组件(4) 保存状态与恢复状态
查看>>