千家信息网

mysql的备份脚本分享

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,本篇内容介绍了"mysql的备份脚本分享"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#!/bin/
千家信息网最后更新 2024年11月14日mysql的备份脚本分享

本篇内容介绍了"mysql的备份脚本分享"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

#!/bin/bash##################################################################                                                               ##       Purpose: MySQL backups                                  ## This script does a full or incremental backup  ## The full is done via mysqldump## The incremental is done via flush-logs option  ## with mysqladmin##                                                               ##                The script is also setup to email if a         ##                failure occurs                                 ##                                                               ##       Assumptions:                                            ##               1. Database is in Binary Update Log mode        ##               2. The variables are set correctly              ####Usage:mysql_backup [full|incremental]####                                                               ####################################################################################################################################               INITILIAZE VARIABLES                            ################################################################### Set the mode, full|incremental# parameter is passed inMODE=$1# set the username to connect to mysql for the backupMYSQLUSER=backup# set the password to connect to mysql for the backupMYSQLUSERPW=password# set the Binary Update Logs PathBINLOGPATH=/mysql/logs/emds01/mysql# Set the binary Update Logs nameBINLOGNAME=viper2-bin# set the backup pathBACKUPPATH=/export/home/mysql/backups# set the email address for errors to be emailed toEMAIL_ADDR=shenandoah.speers@cicadacorp.com# set the log fileLOGFILE=$BACKUPPATH/logs/$HOSTNAME_$RUNDATE.log# set the error log fileLOGERR=$BACKUPPATH/logs/ERRORS_$HOSTNAME_$RUNDATE.log# set the number of days to keep the backupsDAYSTOKEEP=5# set Run dateRUNDATE=`date +%Y%m%d%s`# set hostnameHOSTNAME=`uname -n`##################################################################               GLOBAL FUNCTIONS                                ##################################################################copyBinlogs() {# copy binlogs to backup direcho "Copying binlogs"for FILE in `cat $BINLOGPATH/$BINLOGNAME.index`doSFILE=(${FILE/*//})echo "- binlog $SFILE"cp $FILE $BACKUPPATH/$SFILE_$RUNDATEgzip $BACKUPPATH/$SFILE_$RUNDATEdone}removeOldBackups() {# remove old backupsecho "Removing old backups greater then $DAYSTOKEEP days"find $BACKUPPATH -type f -mtime +$DAYSTOKEEP -name *.gz -print -exec rm {} ;find $BACKUPPATH/logs -type f -mtime +$DAYSTOKEEP -name *.log -print -exec rm {} ;}startlog() {# IO redirection for loggingtouch $LOGFILEexec 6>&1           # Link file descriptor #6 with stdout.# Saves stdout.exec > $LOGFILE     # stdout replaced with file $LOGFILE.touch $LOGERRexec 7>&2           # Link file descriptor #7 with stderr.# Saves stderr.exec 2> $LOGERR     # stderr replaced with file $LOGERR.}stoplog() {#Clean up IO redirectionexec 1>&6 6>&-      # Restore stdout and close file descriptor #6.exec 1>&7 7>&-      # Restore stdout and close file descriptor #7.}##################################################################               START OF MAIN                                   ##################################################################case "$MODE" in'full')# Daily backup# - copy all bin logs to backup directory# - remove old backups and logsstartlog;echo "Start Mysql Daily backup `date +%c`"mysqldump -u $MYSQLUSER -p$MYSQLUSERPW --single-transaction --flush-logs --master-data=2--all-databases --delete-master-logs | gzip > $BACKUPPATH/$HOSTNAME_full_$RUNDATE.sql.gzcopyBinlogs;removeOldBackups;echo "Finish Mysql Daily backup `date +%c`"stoplog;email;;;'incremental')# hourly backup# - flush logs# - copy all bin logs to backup directory if not already doneecho "Start Mysql hourly backup `date +%c`"startlog;mysqladmin -u $MYSQLUSER -p$MYSQLUSERPW flush-logscopyBinlogs;echo "Finish Mysql hourly backup `date +%c`"stoplog;;;*)echo "Usage: mysql_backup [full|incremental]";;esac# email any errors encounteredif [ -s "$LOGERR" ]thencat "$LOGERR" | mail -s "ERRORS REPORTED: MySQL Backup error Log for $HOSTNAME - $RUNDATE" $EMAIL_ADDRcat "$LOGFILE" | mail -s "MySQL Backup Log for $HOSTNAME - $RUNDATE" $EMAIL_ADDRSTATUS=1elseSTATUS=0fiexit $STATUS##################################################################               END OF MAIN                                     ##################################################################

"mysql的备份脚本分享"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

备份 脚本 内容 更多 知识 实用 学有所成 接下来 困境 实际 情况 文章 案例 编带 网站 行业 过程 高质量 学习 有关 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 bark服务器端 大庆网络安全分局电话号码 固高网络安全 库存数据库文件 如何在服务器修改java文件 阿里云服务器违法信息 mysql数据库技术文献 网络安全与技术 论文题目 网络安全教育的作用和地位 位置服务器怎么打开 APP注入数据库 网络安全管理条例征求意见解读 重庆吉之年软件开发有限公司 首都网络安全日日程 数据库原理及应用陈业斌课后答案 accesc数据库更换背景 嘉兴数字化智慧校园软件开发 云免服务器一键搭建 甘肃语音网络技术服务工程 湖北省荆门万博网络技术学校 网络安全法对电子商务的意义 北京字跳网络技术有限公司什么样 2020年网络安全半年总结 第一部网络安全法颁布时间 武威商城分销软件开发多少钱 软件的数据库指的是什么 延锋软件开发地址 嘉兴数字化智慧校园软件开发 温州市erp软件开发 关系数据库都符合第一范式
0