> Linux教程 >

Linux crontab计划任务+python脚本实现定时清理mysql二进制日志

mysql 数据库有开通二进制日志文件(用于记录数据库被操作的日志文件,用于日后来回滚或查找误操作步骤)

对于访问大的论坛来说,每天有成千上万次的请求数据库的操作,所以日志会非常占用服务器空间,每个文件

show binary logs;

显示mysql 二进制日志

多达1G以上,长期下去空间肯定不够。比较干净的清理方法,是登陆到mysql数据库里面执行以下命令

purge master | binary logs to | before ‘文件名’或者'日期' 来有指定的删除日志文件 。现在不会经常登陆到服务

器手动执行命令来删除日志,需要定时有计划的让服务器自动删除。所以编写一段python脚本代码 + crontab 

计划任务来完成这个工作:

Linux crontab计划任务+python脚本实现定时清理mysql二进制日志

python代码 :

#/bin/python

#del_log.py   清理日志

import MySQLdb

conn = MySQLdb.connect(host='localhost',user="root",passwd="111111",db="mysql");

cursor = conn.cursor();

cursor.execute(""" purge master logs before current_timestamp - interval 10 day""")

""" purge master logs before current_timestamp - interval 10 day"""

用来删除前10天的数据库日志                                                           

$> 用crontab -e编辑crontab 计划任务文件,在文件最后一行添加 :

10 10 * * * python /root/del_log.py

上面这一行指:每天10:10 分 执行python /root/del_log.py文件

 

其实Bash 脚本就可以实现的 哈哈。。。

建一个名script脚本文件

文件里面输入:

#!/bin/bash

mysql -u root -h localhost -p123456 mysql<<EOFMYSQL

pugre master logs before current_timestamp-interval 10 day

EOFMYSQL

保存;

注意: -p123456 ,-p 和密码 123456 必须挨在一起,

不然执行脚本的时候会提示你输入密码》Enter password:

$:chmod 755 script    给脚本能够执行的权限

再添加计划任务

10 10 * * * /root/script  就可以每天执行清理日志的功能

(责任编辑:IT)