编写python3脚本,实现查询mysql中所有库并进行备份,删除过期备份

自动化MySQL数据库备份与7天前备份清理的Python脚本
该Python3脚本用于连接MySQL数据库,获取所有数据库名并进行备份,备份文件保存在指定路径。同时,脚本会删除7天前的旧备份文件。需要安装pymysql模块,并根据实际的数据库连接信息和路径进行配置。

以下是一个Python3脚本,可以实现查询MySQL数据库中所有库,并进行备份,然后删除7天前的备份。


import os
import time
import datetime
import pymysql


# MySQL数据库连接信息
host = 'localhost'
port = 3306
user = 'root'
dbwd = '12345678'


# 备份文件保存路径
backup_path = '/backup/'


# 获取当前时间
today = datetime.date.today()


# 连接MySQL数据库
conn = pymysql.connect(host=host, port=port, user=user, password=dbwd)


# 获取所有数据库名
cursor = conn.cursor()
cursor.execute('SHOW DATABASES')
databases = cursor.fetchall()


# 备份所有数据库
for database in databases:
    database = database[0]
    if database == 'information_schema' or database == 'mysql' or database == 'performance_schema':
        continue
    filename = backup_path + database + '_' + str(today) + '.sql'
    os.system('mysqldump -h ' + host + ' -u ' + user + ' -p' + password + ' ' + database + ' > ' + filename)


# 删除7天前的备份
for file in os.listdir(backup_path):
    if file.endswith('.sql'):
        file_path = os.path.join(backup_path, file)
        file_time = datetime.datetime.fromtimestamp(os.path.getctime(file_path)).date()
        if (today - file_time).days > 7:
            os.remove(file_path)


# 关闭数据库连接
cursor.close()
conn.close()
 


说明:


1. 首先,需要安装pymysql模块,可以使用pip3 install pymysql命令进行安装。
2. 在脚本中,需要设置MySQL数据库连接信息、备份文件保存路径等参数。
3. 使用SHOW DATABASES语句获取所有数据库名。
4. 使用mysqldump命令备份所有数据库。
5. 使用os.listdir()函数获取备份文件夹中的所有文件,使用os.path.getctime()函数获取文件创建时间,判断是否需要删除备份文件。
6. 使用centos7系统,需要安装python3,具体命令如下:

[root@os-240 ~]#   yum install python3
[root@os-240 ~]#  pip3 install pymysql

[root@os-240 ~]#  pip3 install setuptools_rust

[root@os-240 ~]#  pip3 install transformers==3.4
[root@os-240 ~]#  pip3 install cryptography

注意:在实际使用中,需要根据实际情况进行修改和调整。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值