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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容