MySQL Backup--使用mysqldump依次备份所有数据库

                某些场景下需要将数据库分开备份,有些场景又需要将所有数据库合在一起备份,特此整理此备份脚本

                #!/bin/bash
                ##===========================================================================##
                ## use mysqldump to backup all user database, keey 5 days.
                ##===========================================================================##
                ## mysql_backup_database option:
                ## ONE_BACKUP: backup all user database into one zip file
                ## MORE_BACKUP: backup user database into different zip files.
                ## DATABASE_NAME: only backup the specified database.
                
                ##===========================================================================##
                ## mysql backup config
                mysql_exe="/export/servers/mysql/bin/mysql"
                mysqldump_exe="/export/servers/mysql/bin/mysqldump"
                mysql_backup_folder="/export/data/mysql/dumps/"
                mysql_backup_log="${mysql_backup_folder}mysql_dump_log.txt"
                mysql_backup_log_his="${mysql_backup_folder}mysql_dump_log_his.txt"
                mysql_backup_host="127.0.0.1"
                mysql_backup_port=3306
                mysql_backup_user="root"
                mysql_backup_password="rootpwd"
                mysql_backup_database="ONE_BACKUP"
                mysql_backup_table_name_list=""
                mysql_backup_keep_days=5
                
                ##====================================================##
                ## get mysql version
                ##====================================================##
                function get_mysql_version()
                {
                    master_version_tmp=`${mysql_exe}     --host="${mysql_backup_host}" --port=${mysql_backup_port}     --user="${mysql_backup_user}" --password="${mysql_backup_password}"     -e "select @@version;"`
                    if [[ master_version_tmp == 5.5.* ]]
                    then
                        mysql_version="mysql55"
                    elif [[ master_version_tmp == 5.6.* ]]
                    then
                        mysql_version="mysql56"
                    else
                        mysql_version="mysql57"
                    fi
                }
                
                ##===========================================================================##
                ## remove expired backup file
                ## keep the backup file of the last N days
                function remove_expired_file()
                {
                    echo "$(date "+%Y-%m-%d %H:%M:%S")  start to remove expired backup file." >> ${mysql_backup_log}
                    echo "keep days:    ${mysql_backup_keep_days}" >> ${mysql_backup_log}
                    find "${mysql_backup_folder}" -mtime +${mysql_backup_keep_days} -name "*" -exec rm -rf {} \;
                    echo "$(date "+%Y-%m-%d %H:%M:%S")  start to mysqldump." >> ${mysql_backup_log}
                }
                
                ##===========================================================================##
                ## backup single database
                function backup_single_database()
                {
                    current_database_name=$1
                    mysql_backup_file_path="${mysql_backup_folder}""${current_database_name}-`date -I`.sql.gz"
                    echo "$(date "+%Y-%m-%d %H:%M:%S")  start to backup database ${current_database_name} to ${mysql_backup_file_path}" >> ${mysql_backup_log}
                    
                    ($mysqldump_exe     --host="${mysql_backup_host}"     --port=$mysql_backup_port     --user="${mysql_backup_user}"     --password="${mysql_backup_password}"     --databases "${current_database_name}"      --set-gtid-purged=OFF     --single-transaction     --hex-blob --opt --quick     --events --routines --triggers     --default-character-set="utf8"     --master-data=2     |gzip > "${mysql_backup_file_path}"     ) 1>>${mysql_backup_log} 2>>${mysql_backup_log} 
                
                    if [ $? = 0 ]
                    then
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup database ${current_database_name} success." >> ${mysql_backup_log}
                    else
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup database ${current_database_name} failed." >> ${mysql_backup_log}
                    fi
                }
                
                function backup_more_databases()
                {
                    for database_name in ${database_name_list};
                    do
                        if [ "$database_name" == "" ]
                        then
                            echo "database name can be empty"
                        else
                            backup_single_database "${database_name}"
                        fi
                    done
                }
                
                function backup_all_databases()
                {
                    mysql_backup_file_path="${mysql_backup_folder}""full-backup-`date -I`.sql.gz"
                    echo "$(date "+%Y-%m-%d %H:%M:%S")  start to backup all databases to ${mysql_backup_file_path}" >> ${mysql_backup_log}
                    
                    ($mysqldump_exe     --host="${mysql_backup_host}"     --port=$mysql_backup_port     --user="${mysql_backup_user}"     --password="${mysql_backup_password}"     --all-databases     --ignore-table=mysql.*     --ignore-table=information_schema.*     --ignore-table=performance_schema.*     --ignore-table=sys.*     --set-gtid-purged=OFF     --single-transaction     --hex-blob --opt --quick     --events --routines --triggers     --default-character-set="utf8"     --master-data=2     |gzip > "${mysql_backup_file_path}"     ) 1>>${mysql_backup_log} 2>>${mysql_backup_log} 
                
                    if [ $? = 0 ]
                    then
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup database ${current_database_name} success." >> ${mysql_backup_log}
                    else
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup database ${current_database_name} failed." >> ${mysql_backup_log}
                    fi
                }
                
                
                function backup_databases()
                {    
                    if [ "${mysql_backup_database}" == "ONE_BACKUP" ];
                    then
                        backup_all_databases
                    elif [ "${mysql_backup_database}" == "MORE_BACKUP" ];
                    then
                        database_name_list=`${mysql_exe} --host="${mysql_backup_host}" --port=$mysql_backup_port --user="${mysql_backup_user}" --password="${mysql_backup_password}" -Ne "show databases;" |egrep -v "(mysql|sys|test|information_schema|performance_schema|dada_call_center)"`
                        backup_more_databases
                    else 
                        database_name_list=${mysql_backup_database}
                        backup_more_databases
                    fi
                }
                
                
                ##====================================================##
                ## 1. dump user script on mysql
                ## 2. this script only can be used on mysql 5.7
                ##====================================================##
                function dump_user_script_5_7()
                {
                    script_file_path="${mysql_backup_folder}""user-script-`date -I`.sql"
                    echo "$(date "+%Y-%m-%d %H:%M:%S")  start backup user script." >> ${mysql_backup_log}
                    (echo "select concat(‘show create user ‘‘‘,user,‘‘‘@‘‘‘,host, ‘‘‘;
                    ,show grants for ‘‘‘,user,‘‘‘@‘‘‘,host, ‘‘‘;) 
                    from mysql.user where user <>root and user<>‘‘ and host <> ‘‘ " | \
                    ${mysql_exe} --host="${mysql_backup_host}" --port=${mysql_backup_port}     --user="${mysql_backup_user}" --password="${mysql_backup_password}" -N |     ${mysql_exe} --host="${mysql_backup_host}" --port=${mysql_backup_port}     --user="${mysql_backup_user}" --password="${mysql_backup_password}" -N |     sed "s/$/;/" >> ${script_file_path}) 1>>${mysql_backup_log} 2>>${mysql_backup_log} 
                    
                    if [ $? = 0 ]
                    then
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup user script success." >> ${mysql_backup_log}
                    else
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup user script failed." >> ${mysql_backup_log}
                    fi
                }
                
                
                ##====================================================##
                ## 1. dump user script on mysql
                ## 2. this script only can be used on mysql 5.5
                ##====================================================##
                function dump_user_script_5_5()
                {
                    script_file_path="${mysql_backup_folder}""user-script-`date -I`.sql"
                    echo "$(date "+%Y-%m-%d %H:%M:%S")  start backup user script." >> ${mysql_backup_log}
                    
                    (echo "select concat(‘show grants for ‘‘‘,user,‘‘‘@‘‘‘,host, ‘‘‘;‘)  
                    from mysql.user where user <>root and user<>‘‘ and host <> ‘‘ " | \
                    ${mysql_exe} --host="${mysql_backup_host}" --port=${mysql_backup_port}     --user="${mysql_backup_user}" --password="${mysql_backup_password}" -N |     ${mysql_exe} --host="${mysql_backup_host}" --port=${mysql_backup_port}     --user="${mysql_backup_user}" --password="${mysql_backup_password}" -N |     sed "s/$/;/" >> ${script_file_path}) 1>>${mysql_backup_log} 2>>${mysql_backup_log} 
                    
                    if [ $? = 0 ]
                    then
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup user script success." >> ${mysql_backup_log}
                    else
                        echo "$(date "+%Y-%m-%d %H:%M:%S")  backup user script failed." >> ${mysql_backup_log}
                    fi
                }
                
                ##===========================================================================##
                
                function backup_mysql_user()
                {
                    if [[ mysql_version == "mysql55" ]]
                    then
                        dump_user_script_5_5
                    else
                        dump_user_script_5_7
                    fi
                }
                
                
                ##===========================================================================##
                function mysql_backup()
                {
                    echo > ${mysql_backup_log}
                    get_mysql_version
                    remove_expired_file
                    backup_databases
                    backup_mysql_user
                    cat ${mysql_backup_log} > ${mysql_backup_log_his}
                }
                
                mysql_backup
                相关文章
                相关标签/搜索
                香港王中王论坛资枓香港正香四肖八码期期准精选资料app,四肖八码期期准精选资料最新官方版app预约 黑龙江省| 西青区| 吕梁市| 二连浩特市| 龙泉市| 龙游县| 永靖县| 来宾市| 昌乐县| 东乌珠穆沁旗| 弥勒县| 谢通门县| 临邑县| 独山县| 江口县| 宁国市| 于田县| 晋城| 屯留县| 施秉县| 原阳县| 博野县| 临武县| 蒙自县| 锡林郭勒盟| 水城县| 舒兰市| 扬州市| 饶平县| 伊春市| 凤阳县| 沧源| 宜兰县| 独山县| 古田县| 渭源县| 辉南县| 双峰县| 桑植县| 衡山县| 桃江县| 拉萨市| 黄石市| 当阳市| 竹山县| 武陟县| 江山市| 双柏县| 普陀区| 克什克腾旗| 图木舒克市| 彭山县| 湟源县| 夏河县| 班玛县| 蓝田县| 台东市| 周至县| 房产| 洪雅县| 武冈市| 和林格尔县| 永清县| 谷城县| 富蕴县| 大石桥市| 元朗区| 竹北市| 嘉兴市| 张家港市| 正阳县| 北宁市| 河北区| 天水市| 龙陵县| 鹤山市| 磐石市| 宁明县| 伊宁县| 灵宝市| 布拖县| 瑞安市| 邵武市| 海门市| 临海市| 扬州市| 出国| 辛集市| 凯里市| 修水县| 长子县| 西宁市| 资溪县| 霍城县| 瑞昌市| 万源市| 息烽县| 华亭县| 庆安县| 休宁县| 金门县| 台东县| 峨眉山市| 格尔木市| 孝义市| 桐柏县| 托里县| 平原县| 扎赉特旗| 定兴县| 中牟县| 亚东县| 调兵山市| 姚安县| 南丹县| 德安县| 杭锦后旗| 信阳市| 沂源县| 白山市| 临桂县| 白山市| 江孜县| 吴忠市| 禄丰县| 岚皋县| 贵德县| 鸡东县| 抚松县| 准格尔旗| 绥阳县| 确山县| 五原县| 成安县| 肥城市| 乌恰县| 依安县| 永福县| 银川市| 郑州市| 宁南县| 巍山| 罗源县| 纳雍县| 永宁县| 峨眉山市| 乾安县| 金塔县| 黄石市| 德州市| 新竹市| 渝北区| 博野县| 瓮安县| 峨边| 渝中区| 高碑店市| 昭苏县| 灵台县| 岚皋县| 元谋县| 富民县| 龙陵县| 治县。| 明水县| 鸡泽县| 肃南| 康乐县| 绥宁县| 聂荣县| 神木县| 宁德市| 宁德市| 安丘市| 连州市| 洪江市| 新津县| 马龙县| 马龙县| 南木林县| 客服| 斗六市| 周口市| 都匀市| 鄂伦春自治旗| 襄樊市| 麻江县| 红河县| 吴堡县| 蒲城县| 罗江县| 沅江市| 建宁县| 通州区| 嘉鱼县| 浦江县| 扶余县| 沈阳市| 保康县| 拉孜县| 青龙| 定安县| 西青区| 耿马| 连云港市| 清水县| 聊城市| 滁州市| 无锡市| 永修县| 读书| 措勤县| 嘉善县| 天峨县| 黄骅市| 澜沧| 西峡县| 资源县| 潢川县| 浮山县| 会泽县| 河西区| 玛曲县| 天等县| 高要市| 湄潭县| 清流县| 南涧| 麦盖提县| 安远县| 兴业县| 突泉县| 九龙坡区| 武鸣县| 兴仁县| 凉城县| 牙克石市| 彩票| 枣庄市| 名山县| 利川市| 五大连池市| 淮北市| 八宿县| 吉林省| 肥城市| 黄冈市| 原平市| 青阳县| 都昌县| 青岛市| 福建省| 陆川县| 邻水| 镇赉县| 黑山县| 巴楚县| 章丘市| 娱乐| 芮城县| 林州市| 宝丰县| 武胜县| 区。| 岳阳县| 邛崃市| 望谟县| 叙永县| 中超| 宜城市| 东至县| 积石山| 锦屏县| 南昌市| 彝良县| 蓬安县| 太仓市| 宜兰县| 浦东新区| 吉首市| 贞丰县| 太谷县| 宁国市| 耒阳市| 玉溪市| 康保县| 南投市| 玉门市| 乃东县| 汉源县| 全南县| 梅河口市| 云安县| 武乡县| 高青县| 泾源县| 舟山市| 巴南区| 绿春县| 汉中市| 邢台县| 资讯| 山东| 南部县| 肥乡县| 山丹县| 罗江县| 乐山市| 临猗县| 贵阳市| 柏乡县| 阜宁县| 长寿区| 乌兰浩特市| 阿克苏市| 南和县| 达拉特旗| 肇源县| 枣阳市| 鄄城县| 蒙城县| 宜昌市| 鄂托克旗| 潞西市| 都昌县| 长阳| 嘉兴市| 盐边县| 辛集市| 额济纳旗| 东城区| 嘉兴市| 安远县| 闽侯县| 鄄城县| 姜堰市| 富川| 抚顺县| 宜君县| 义马市| 汾西县| 望城县| 泗洪县| 深泽县| 仁化县| 科技| 江都市| 罗山县| 百色市| 永寿县| 和静县| 始兴县| 共和县| 正阳县| 浦北县| 即墨市| 哈密市| 祁阳县| 阿拉善左旗| 延寿县| 开远市| 盖州市| 万山特区| 平凉市| 翁牛特旗| 勃利县| 黄浦区| 忻城县| 松潘县| 射洪县| 永安市| 隆化县| 改则县| 海丰县| 诸暨市| 花莲县| 开封市| 府谷县| 高雄县| 家居| 乌什县| 彰化县| 两当县| 彭阳县| 南皮县| 玛纳斯县| 中牟县| 庐江县| 巴彦淖尔市| 天峻县| 龙口市| 陵川县| 鱼台县| 台北县| 锡林郭勒盟| 德阳市| 铅山县| 南部县| 临澧县| 雷州市| 遂平县| 遂川县| 宜阳县| 贺兰县| 始兴县| 临清市| 公主岭市| 巴南区| 博野县| 东兰县| 太仆寺旗| 枞阳县| 安阳市| 长顺县| 绥江县| 尼勒克县| 海门市| 理塘县| 平远县| 南靖县| 建昌县| 鄂伦春自治旗| 柳河县| 峨边| 高唐县| 桐庐县| 综艺| 澳门| 安图县| 丹寨县| 海伦市| 千阳县| 桃园县| 沭阳县| 惠水县| 文昌市| 盐池县| 白水县| 湄潭县| 东山县| 宜兰县| 景谷| 金山区| 乡城县| 临猗县| 获嘉县| 景洪市| 镇坪县| 苏州市| 凤台县| 孟津县| 诏安县| 涪陵区| 林州市| 石台县| 阿荣旗| 策勒县| 兴海县| 鄄城县| 澎湖县| 昌邑市| 沈阳市| 佛冈县| 临漳县| 苍南县| 平果县| 襄汾县| 福安市| 宜章县| 都江堰市| 兴仁县| 遵义市| 咸宁市| 封丘县| 北票市| 德惠市| 阿克陶县| 大丰市| 志丹县| 景德镇市| 靖西县| 延川县| 北宁市| 老河口市| 岑溪市| 清镇市| 昭苏县| 额济纳旗| 桐城市| 宝清县| 元朗区| 兴安县| 芮城县| 万宁市| 清丰县| 稷山县| 江安县| 溧阳市| 阳谷县| 定安县| 三台县| 西乌| 虎林市| 济南市| 驻马店市| 西平县| 平阴县| 芮城县| 榆社县| 沁源县| 宜宾市| 砀山县| 长岭县| 阿拉尔市| 岳阳市| 互助| 芜湖县| 辰溪县| 英吉沙县| 临潭县| 广河县| 专栏| 普洱| 宽城| 麻栗坡县| 鹤庆县| 淅川县| 闽侯县| 高平市| 壤塘县| 玉门市| 海城市| 祥云县| 南和县| 驻马店市| 墨脱县| 桦川县| 高碑店市| 荔波县| 永善县| 黄大仙区| 满洲里市| 安图县| 成武县| 金寨县| 屏南县| 永和县| 扎囊县| 潢川县| 河北区| 高要市| 虎林市| 平阳县| 渝北区| 波密县| 綦江县| 基隆市| 恭城| 德庆县| 九龙县| 武定县| 济源市| 临沂市| 临清市| 桐柏县| 新营市| 南昌市| 文昌市| 苗栗市| 遵化市| 杨浦区| 寿宁县| 卫辉市| 莒南县| 丰镇市| 古交市| 宁陕县| 峨眉山市| 上饶市| 高雄市| 北流市| 福清市| 襄汾县| 吉首市| 哈尔滨市| 青川县| 西贡区| 庄河市| 茌平县| 旺苍县| 西青区| 乌审旗| 陈巴尔虎旗| 襄樊市| 开平市| 腾冲县| 信丰县| 永泰县| 陵川县| 赫章县| 依安县| 琼海市| 扎赉特旗| 中卫市| 临海市| 门头沟区| 奉贤区| 惠来县| 措美县| 长子县| 梅州市| 日土县| 达尔| 色达县| 临澧县| http://wap.jx1870figurev.fun http://jx1870keyv.fun http://m.jx1870evenv.fun http://wap.jx1870indicatev.fun http://wap.jx1870forgetv.fun http://m.jx1870forzatv.fun http://m.jx1870footv.fun http://www.jx1870inchv.fun http://www.jx1870estizatev.fun http://wap.jx1870feelv.fun http://www.hz0j4r5vo.fun http://m.jx1870forcev.fun http://www.jx1870includev.fun http://www.jx1870izagev.fun http://jx1870influencev.fun http://jx1870fanv.fun http://www.jx1870fairv.fun http://jx1870hearv.fun