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