脚本来源

https://github.com/ifpython/zabbix-mysql-backup

zabbix_mysqldump.sh

#!/bin/bash#author: itnihao#mail: itnihao#qq.com#license: apache 2.0#from :https://github.com/zabbix-book/zabbix-mysql-backup#usage: chmod 700 ${PATH}/zabbix_mysqldump.sh#crontab: 0 3 * * * ${PATH}/zabbix_mysqldump.sh mysqldumpred='\e[0;31m' # 红色  RED='\e[1;31m' green='\e[0;32m' # 绿色  GREEN='\e[1;32m' blue='\e[0;34m' # 蓝色  BLUE='\e[1;34m' purple='\e[0;35m' # 紫色  PURPLE='\e[1;35m' NC='\e[0m' # 没有颜色  source /etc/bashrcsource /etc/profileMySQL_USER=zabbixMySQL_PASSWORD=Root@123456MySQL_HOST=localhostMySQL_PORT=3306MySQL_DUMP_PATH=/mysql_backupMYSQL_BIN_PATH=/usr/bin/mysqlMYSQL_DUMP_BIN_PATH=/usr/bin/mysqldumpMySQL_DATABASE_NAME=zabbixDATE=$(date '+%Y-%m-%d')MySQLDUMP () {    [ -d ${MySQL_DUMP_PATH} ] || mkdir ${MySQL_DUMP_PATH}    cd ${MySQL_DUMP_PATH}    [ -d logs    ] || mkdir logs    [ -d ${DATE} ] || mkdir ${DATE}    cd ${DATE}    TABLE_NAME_ALL=$(${MYSQL_BIN_PATH} -u${MySQL_USER} -p${MySQL_PASSWORD}  -h${MySQL_HOST} ${MySQL_DATABASE_NAME} -e \    "show tables"|egrep -v "(Tables_in_zabbix|history*|trends*|acknowledges|alerts|auditlog|events|service_alarms)")    for TABLE_NAME in ${TABLE_NAME_ALL}    do        ${MYSQL_DUMP_BIN_PATH} --opt -u${MySQL_USER} -p${MySQL_PASSWORD} -P${MySQL_PORT} -h${MySQL_HOST} \        ${MySQL_DATABASE_NAME} ${TABLE_NAME} >${TABLE_NAME}.sql        sleep 0.01    done    [ "$?" == 0 ] && echo "${DATE}: Backup zabbix succeed"     >> ${MySQL_DUMP_PATH}/logs/ZabbixMysqlDump.log    [ "$?" != 0 ] && echo "${DATE}: Backup zabbix not succeed" >> ${MySQL_DUMP_PATH}/logs/ZabbixMysqlDump.log    cd ${MySQL_DUMP_PATH}/    [ "$?" == 0 ] && rm -rf $(date +%Y-%m-%d --date='5 days ago')    exit 0}MySQLImport () {    cd ${MySQL_DUMP_PATH}    DATE=$(ls  ${MySQL_DUMP_PATH} |egrep "\b^[0-9]+-[0-9]+-[0-9]+$\b")    echo -e "${green}${DATE}"    echo -e "${blue}what DATE do you want to import,please input date:${NC}"    read SELECT_DATE    if [ -d "${SELECT_DATE}" ];then        echo -e "you select is ${green}${SELECT_DATE}${NC}, do you want to contine,if,input ${red}(yes|y|Y)${NC},\        else then exit"        read Input        [[ 'yes|y|Y' =~ "${Input}" ]]        status="$?"        if [ "${status}" == "0"  ];then            echo "now import SQL....... Please wait......."        else            exit 1        fi        cd ${SELECT_DATE}        for PER_TABEL_SQL in $(ls *.sql)        do           ${MYSQL_BIN_PATH} -u${MySQL_USER} -p${MySQL_PASSWORD}  -h${MySQL_HOST} ${MySQL_DATABASE_NAME} < ${PER_TABEL_SQL}           echo -e "import ${PER_TABEL_SQL} ${PURPLE}........................${NC}"        done         echo "Finish import SQL,Please check Zabbix database"    else         echo "Don't exist ${SELECT_DATE} DIR"     fi}case "$1" inMySQLDUMP|mysqldump)    MySQLDUMP    ;;MySQLImport|mysqlimport)    MySQLImport    ;;*)    echo "Usage: $0 {(MySQLDUMP|mysqldump) (MySQLImport|mysqlimport)}"    ;;esac

set contab

Backup zabbix mysql database

shell# chmod 700 /usr/sbin/zabbix_mysqldump.shshell# crontab -e 0 3 * * *  /usr/sbin/zabbix_mysqldump.sh mysqldump
©著作权归作者所有:来自51CTO博客作者李石岩的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 监控系统项目实施--安装与部署-- MySQL数据库--分区表创建2
  2. 必备技能!Shell编程实战案例分享(PDF版)!
  3. 如何不耍流氓的做运维之-SHELL脚本
  4. 自动安装nginx脚本
  5. 关于OSIsoft PI软件存在访问控制漏洞和跨站脚本漏洞的情况通报
  6. 1819、shell脚本基础-bash变量和逻辑运行0脚本编程基础及配置文
  7. OSD 自动升级Dell BIOS 版本
  8. 第十六周作业
  9. shell脚本之if使用语句进行条件测试

随机推荐

  1. Failed while installing Dynamic Web Mo
  2. MySQLDriverCS Exception: MySQLDriverCS
  3. Mysql字符集和校验规则
  4. PHP读取Excel文件的内容并写入Mysql数据
  5. 有多少MySQL行太多?
  6. PHP新的连接MySQL方法mysqli
  7. 使用GROUP BY,ORDER BY进行PDO查询构造
  8. mysql免安装版简单使用步骤
  9. 如何在MySQL中得到两个值的最大值?
  10. mysql replace into 的使用情况