2021-06-16

python备份mysql脚本改进 因为数据库太多了 不可能一个数据库一个脚本

所以使用pymysql去读取数据库名称然后进行批量备份

脚本如下


import os

import time

import json

import requests

import pymysql

'''

shell 脚本删除三天以前的备份文件

因为使用python写没有 shell快所以使用shell删除

find /data -mtime +3 -name "*.sql*" -exec rm -rf {} \;

'''

Date = time.strftime('%Y-%m-%d',    time.localtime(time.time()))

class Backup(object):

def __init__(self, host,  user, password):

self.host = host

self.user = user

self.password = password

def conn(self):

db = pymysql.connect(host=self.host,user=self.user, password=self.password,port=3306 )

cursor = db.cursor()

cursor.execute("show databases")

name = cursor.fetchall()

for iin name:

for dbnamein i:

backupcmd ="bash /home/mysql/delete.sh && cd /data/ && mysqldump -h %s -u%s -p%s %s > %s-%s.sql" % (self.host, self.user, self.password, dbname, Date, dbname)

os.system(backupcmd)

backup.tips(str(Date) +":今日mysql所有数据库备份完成")

def tips(self,state):

# 飞书 发送消息

            url ="你的飞书地址"

            # 飞书webhook 地址

            payload_message = {

"msg_type":"text",

                "content": {

"text": state

}

}

headers = {

'Content-Type':'application/json'

            }

# response 构建客户端发送通知

            response = requests.request("POST", url, headers=headers, data=json.dumps(payload_message))

return (response.text)

if __name__ =='__main__':

backup = Backup("192.168.60.40", 'tiptop', 'tiptop')

backup.conn()

你可能感兴趣的:(2021-06-16)