记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。



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


import os
import time
import datetime
import pymysql


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


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


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


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


# 获取所有数据库名
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

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





转载请标明出处【编写python3脚本,实现查询mysql中所有库并进行备份,删除过期备份】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论