美文网首页
2018-08-25 mysql自动清理日志和禁用mysql用户

2018-08-25 mysql自动清理日志和禁用mysql用户

作者: lanlanmama | 来源:发表于2018-08-25 11:16 被阅读0次

一、 任务

    由于MyAWR服务端每天收到所有客户端发来的数据,导致MyAWR服务端的data目录(每个客户端均有相应的database)和binlog目录(写入database)逐日递增,空间有限,而且这些数据和日志是可以每天清理的,因此,需要每天清理data目录下MyAWR客户端的database,以及清理binlog日志。

二、 实现

1、 每天自动清理binlog日志:修改my.cnf中的expire_logs_days = 1,然后重启mysql。

2、 每天手工清理相应的database:

在已安装mysql客户端的服务器上,使用mysql操作系统用户,执行:sh ./drop_database.sh

drop_database.sh

#!/bin/bash

mysql -uroot -proot -h10.186.20.91 -P3306 -Nse"show databases like 'm010%'" 2>/dev/null > drop_database.tmp

while read line

do

  mysql -uroot -proot -h10.186.20.91 -P3306 -Nse"drop database $line" 2>/dev/null

done < drop_database.tmp

3、 关闭mysql用户的Linux定时任务Crontab:

涉及文件:

 /etc/cron.allow文件:定义允许使用crontab命令的用户

 /etc/cron.deny文件:定义拒绝使用crontab命令的用户

这两个文件有优先级,普通用户在执行crontab命令的时候

(1)系统先检测cron.allow文件是否存在;如果存在,则检测文件中存在的用户中是否有当前用户,检测通过则开始执行,检测不通过直接提示该用户没有执行权限

(2)当系统没有检测到cron.allow文件存在的时候,则接下来检测cron.deny文件,看当前用户是否被deny掉,如果没有在cron.deny文件中检测到当前运行crontab的用户,则该命令可以成功执行,如果有检测到该用户在cron.deny文件中,则直接提示该用户没有执行权限。

解决方法:将mysql用户从/etc/cron.allow文件中删除即可。

3、参考文章:

Linux定时任务Crontab命令详解

Linux禁止普通用户使用crontab命令

相关文章

网友评论

      本文标题:2018-08-25 mysql自动清理日志和禁用mysql用户

      本文链接:https://www.haomeiwen.com/subject/mdnwiftx.html