python写数据库脚本_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 = "https://oapi.dingtalk.com/robot/send?access_token=钉钉机器人接口token"

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值