需求:由于线上库有较多的增删改操作,一天的binlog 日志可能就达到200-300G。这时候我们按照天数清理binlog 已经无法起作用了,因此编写脚本按照个数清理binlog。当磁盘空间达到90% 的时候清理binlog。
clean_binlog.py
#!/usr/bin/python
import psutil
import os
import re
import pymysql
import logging
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='/var/log/clean_mysql_binlog.log', level=logging.INFO, format=LOG_FORMAT)
#获取剩余磁盘大小
disk_stat = psutil.disk_usage('/home')
disk_percent = disk_stat.percent
logging.info('The percentage of disk usage is %d'

针对大量MySQL binlog导致的磁盘空间问题,本文介绍了如何编写Python脚本,依据binlog文件数量而非天数进行清理。当磁盘使用率达到90%且binlog数量超过15个时,脚本会触发清理。文章包含详细步骤,并使用pymysql、psutil和logging模块。建议设置为每小时执行一次的定时任务。
最低0.47元/天 解锁文章
897

被折叠的 条评论
为什么被折叠?



