美文网首页
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