您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页Python编写自动备份MySQL数据库脚本(外接钉钉消息通知)

Python编写自动备份MySQL数据库脚本(外接钉钉消息通知)

来源:二三娱乐

分享一个用Python实现的备份MySQL数据库脚本,实现原理是利用Python内置的os库,调用mysql数据库的mysqldump命令对远程数据库或者本地数据库进行备份,并计算出备份的SQL文件大小(单位为kb),同时以备份时间命名备份的SQL文件,并设定只保留最近5天的备份记录,同时调用钉钉群聊机器人接口,对备份后的数据库信息进行消息推送。有需要的运维小伙伴可以拿去修改使用,这个脚本在Linux服务器上使用crontab定时程序每日定时运行,已经运行近1年的时间了,目前没有出现任何问题。

import requests
import json
import os
import datetime

if not os.path.exists('mysqldb_backup'):
    os.mkdir('mysqldb_backup')
os.chdir('mysqldb_backup')

today = datetime.date.today()
yesterday = today - datetime.timedelta(days=5)

today_file_name = "/home/******/mysqldb_backup/mysql"+str(today)+".sql"
yesterday_file_name = "/home/******/mysqldb_backup/mysql"+str(yesterday)+".sql"

response_code = os.system("/usr/local/mysql/bin/mysqldump -u 数据库用户名 -p数据库密码 -h 数据库IP 数据库名称 > /home/******/mysqldb_backup/mysql`date +%Y-%m-%d`.sql")

file_size = int(os.path.getsize(today_file_name))/1024

if response_code == 0:
    text = "#### Message:\n\n > - MySqlDB Backup Completed!\n\n > - SQL_file_size:"+str(round(file_size,4))+"KB"
    if os.path.exists(yesterday_file_name):
        os.remove(yesterday_file_name)
else:
    text = "#### Message:\n\n > - MySqlDB Backup Error!\n\n > - Please check the server program."


dingding_url =  
headers = {"Content-Type": "application/json; charset=utf-8"}

post_data = {
    "msgtype": "markdown",
     "markdown": {
     "title":"MySqlDB Backup Message",
     "text":text
     }
}

requests.post(dingding_url, headers=headers, data=json.dumps(post_data))

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务