0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

windows服务器备份mysql脚本

马哥Linux运维 来源:马哥Linux运维 2025-01-02 09:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、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

    文章

    10359

    浏览量

    91758
  • WINDOWS
    +关注

    关注

    4

    文章

    3706

    浏览量

    94326
  • MySQL
    +关注

    关注

    1

    文章

    931

    浏览量

    29751

原文标题:二、windows服务器备份mysql脚本

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MySQL数据库备份恢复方式对比

    备份是数据库运维中最重要也最容易被忽视的环节。"重要"体现在数据丢失时备份是唯一的救命稻草,"忽视"体现在很多团队有备份脚本但从未做过恢复演练,等到真正需要恢复时才发现
    的头像 发表于 03-04 15:39 236次阅读

    网络授时服务器 ntp时间服务器品牌 校时服务器厂家#电工

    服务器
    jf_47371611
    发布于 :2026年02月11日 17:53:43

    时钟服务器厂商 gps网络校时服务器 卫星时钟服务器#电工

    服务器
    jf_47371611
    发布于 :2026年02月11日 17:50:52

    恒讯科技解析:如何安装MySQL并创建数据库

    安装和管理MySQL不必复杂。只需几分钟,你就能在Linux服务器上搭建MySQL,创建第一个数据库,甚至自动化备份——同时确保数据安全有序。 什么是
    的头像 发表于 01-14 14:25 368次阅读

    恒讯科技解析:如何在日本服务器上安装和配置数据库(如MySQL)?

    为您的业务部署日本服务器后,下一个关键步骤就是安装和配置数据库。无论是用于网站、应用程序还是数据分析,一个稳定高效的数据库是业务的核心。恒讯科技将以最流行的MySQL为例,提供一份在日本服务器(以
    的头像 发表于 11-04 11:07 806次阅读

    Mysql数据恢复—Windows Server下MySQL(InnoDB)全表误删数据恢复案例

    本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启bi
    的头像 发表于 09-23 15:56 873次阅读
    <b class='flag-5'>Mysql</b>数据恢复—<b class='flag-5'>Windows</b> Server下<b class='flag-5'>MySQL</b>(InnoDB)全表误删数据恢复案例

    服务器数据恢复—RAIDZ多块硬盘离线导致服务器崩溃的数据恢复案例

    服务器数据恢复环境&故障: 一台服务器有32块硬盘,采用Windows操作系统。 服务器在正常运行的时候突然变得不可用。没有异常断电、进水、异常操作、机房不稳定等外部因素。
    的头像 发表于 09-18 12:29 1072次阅读
    <b class='flag-5'>服务器</b>数据恢复—RAIDZ多块硬盘离线导致<b class='flag-5'>服务器</b>崩溃的数据恢复案例

    如何高效管理Linux服务器

    作为一名运维工程师,我们每天的工作是确保服务器的稳定运行、提高效率以及解决各种系统性问题。在繁忙的工作中,如何提升管理Linux服务器的效率,成为了我们最关注的问题。幸运的是,自动化工具与脚本技术为我们提供了巨大的帮助,能够显著
    的头像 发表于 07-24 11:51 728次阅读

    MySQL数据备份与恢复策略

    数据是企业的核心资产,MySQL作为主流的关系型数据库管理系统,其数据的安全性和可靠性至关重要。本文将深入探讨MySQL的数据备份策略、常用备份工具以及数据恢复的最佳实践,帮助运维工程
    的头像 发表于 07-14 11:11 887次阅读

    恒讯科技分析:云储存服务器搭建教程

    共享,还是作为备份用途。这将决定后续的硬件选择和软件配置。 二、选择硬件设备 硬件是搭建云存储服务器的基础。根据需求,可以选择普通的家用电脑、NAS设备,甚至专业的服务器。对于存储介质,建议使用硬盘阵列(如RAID),
    的头像 发表于 07-07 11:07 1473次阅读

    欧洲服务器免费ip地址怎么获取?#欧洲服务器 #免费IP地址 #服务器

    服务器
    jf_57681485
    发布于 :2025年06月13日 11:15:04

    DNS服务器无法访问?2分钟快速排查与解决!#DNS服务器 #DNS #服务器

    服务器
    jf_57681485
    发布于 :2025年06月10日 14:55:34