一、linux备份
使用python脚本,要求有python3和mysqldump
#! /usr/bin/python36 # -*- coding: utf-8 -*- import os import re import datetime import subprocess ## 需要备份数据库的登录信息 mysql_host = { 'test': '10.10.3.207' } db_user = 'root' db_passwd = 'PASSWD' db_port = '3306' ## 备份存放的目录地址,没有回自动生成 back_dir = '/backups/mysql' # 备份文件保存时间,单位:天,超过就删除 backup_keep_time = 30 # 此列表中的数据库将不会备份,下面是默认的基础数据库。 ignore_database = ['Database','information_schema','mysql','sys','performance_schema'] today = datetime.datetime.today().strftime('%Y%m%d%H%M') for env in mysql_host: cmd = '/usr/local/mysql/bin/mysql -h {} -u{} -p{} -P{} -e "show databases"'.format(mysql_host.get(env),db_user,db_passwd,db_port) result = subprocess.check_output(cmd,shell=True,universal_newlines=True).split(' ') databases = [i for i in result if i and i not in ignore_database] env_backup_dir = os.path.join(back_dir,env,today) os.system('mkdir -p {}'.format(env_backup_dir)) for database in databases: back_path = os.path.join(env_backup_dir,'%s_%s.sql.gz' %(database,today)) command = '/usr/local/mysql/bin/mysqldump -h {} -u{} -p{} -P{} {} --force |gzip > {}'.format( mysql_host.get(env),db_user,db_passwd,db_port,database,back_path ) os.system(command) tmp = os.path.join(back_dir,env) for dirname in os.listdir(tmp): time1 = datetime.datetime.strptime(dirname,'%Y%m%d%H%M') time_dif = datetime.datetime.today()-time1 times = time_dif.days if times >= backup_keep_time: for file in os.listdir(os.path.join(tmp,dirname)): os.remove(os.path.join(tmp,dirname,file)) os.rmdir(os.path.join(tmp,dirname))
执行命令
python3 vim /usr/bin/mysql_bakup.py
会在/home/mysql下自动生成一个mysql_bak的文件夹,文件夹是以当时时间的文件夹,文件下就是数据库的备份
[root@localhost ~]# ls /backups/mysql/test/ 202211151637 [root@localhost ~]# ls /backups/mysql/test/202211151637/ nacos_202211151637.sql.gz
二、windows服务器备份mysql脚本
@echo off echo 设置MySql数据库的连接信息 set host=192.168.100.101 set port=3306 set user=root set pass=ECIDI@hc99 echo 设置要备份MySql数据库名称 set dbname1=bns_pay set dbname2=bns_qtnys set dbname3=fawkes set dbname4=fawkes_nacos set dbname5=fawkes_patrol set dbname6=qt_applet echo 获取当天的日期格式,例如:20200902231300 set hour=%time:~0,2% if "%time:~0,1%"==" " set hour=0%time:~1,1% set backup_date=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2% echo 设置备份文件的路径 set backupfile1=D:mysql_bak\%dbname1%-%backup_date%.sql set backupfile2=D:mysql_bak\%dbname2%-%backup_date%.sql set backupfile3=D:mysql_bak\%dbname3%-%backup_date%.sql set backupfile4=D:mysql_bak\%dbname4%-%backup_date%.sql set backupfile5=D:mysql_bak\%dbname5%-%backup_date%.sql set backupfile6=D:mysql_bak\%dbname6%-%backup_date%.sql echo 使用mysqldump对指定的MySql进行备份 echo 注意路径中有空格的要加上双引号 "D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname1% > %backupfile1% "D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname2% > %backupfile2% "D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname3% > %backupfile3% "D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname4% > %backupfile4% "D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname5% > %backupfile5% "D:mysql-8.0.30-winx64inmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname6% > %backupfile6% echo 删除过期文件,这里是超过30天就删除 forfiles /p D:mysql_bak /s /m *.sql /d -30 /c "cmd /c del @file /f"
链接:https://www.cnblogs.com/wangyuanguang/p/16893146.html
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
服务器
+关注
关注
14文章
10362浏览量
91760 -
WINDOWS
+关注
关注
4文章
3706浏览量
94327 -
MySQL
+关注
关注
1文章
931浏览量
29751
原文标题:二、windows服务器备份mysql脚本
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
MySQL数据库备份恢复方式对比
备份是数据库运维中最重要也最容易被忽视的环节。"重要"体现在数据丢失时备份是唯一的救命稻草,"忽视"体现在很多团队有备份脚本但从未做过恢复演练,等到真正需要恢复时才发现
恒讯科技解析:如何安装MySQL并创建数据库
安装和管理MySQL不必复杂。只需几分钟,你就能在Linux服务器上搭建MySQL,创建第一个数据库,甚至自动化备份——同时确保数据安全有序。 什么是
恒讯科技解析:如何在日本服务器上安装和配置数据库(如MySQL)?
为您的业务部署日本服务器后,下一个关键步骤就是安装和配置数据库。无论是用于网站、应用程序还是数据分析,一个稳定高效的数据库是业务的核心。恒讯科技将以最流行的MySQL为例,提供一份在日本服务器(以
Mysql数据恢复—Windows Server下MySQL(InnoDB)全表误删数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启bi
服务器数据恢复—RAIDZ多块硬盘离线导致服务器崩溃的数据恢复案例
服务器数据恢复环境&故障:
一台服务器有32块硬盘,采用Windows操作系统。
服务器在正常运行的时候突然变得不可用。没有异常断电、进水、异常操作、机房不稳定等外部因素。
如何高效管理Linux服务器
作为一名运维工程师,我们每天的工作是确保服务器的稳定运行、提高效率以及解决各种系统性问题。在繁忙的工作中,如何提升管理Linux服务器的效率,成为了我们最关注的问题。幸运的是,自动化工具与脚本技术为我们提供了巨大的帮助,能够显著
MySQL数据备份与恢复策略
数据是企业的核心资产,MySQL作为主流的关系型数据库管理系统,其数据的安全性和可靠性至关重要。本文将深入探讨MySQL的数据备份策略、常用备份工具以及数据恢复的最佳实践,帮助运维工程
恒讯科技分析:云储存服务器搭建教程
共享,还是作为备份用途。这将决定后续的硬件选择和软件配置。 二、选择硬件设备 硬件是搭建云存储服务器的基础。根据需求,可以选择普通的家用电脑、NAS设备,甚至专业的服务器。对于存储介质,建议使用硬盘阵列(如RAID),
windows服务器备份mysql脚本
评论