linux shell:mysql bin_log定期清理脚本
mysql-bin.001022 1073742579
mysql-bin.001023 1073742818
mysql-bin.001024 1073741920
mysql-bin.001025 1073741915
通过mysql清理日志的命令去清理它之前的所有日志。

#####################################
BINPATH="/home/GC_Tools/housekeeping/mysql_bin_log"
SQLPARAM="mysql -h192.168.1.6 -uroot -pXXXXX"
echo $TIME "start clean" >> $BINPATH/log/clean.log
$SQLPARAM < $BINPATH/bin/Getlog.sql > templog.txt
BinLog=`tac templog.txt | sed -n 7p | awk -F ' ' '{print $1}'`
echo "Get the log's name is" \"$BinLog\" >>$BINPATH/log/clean.log
echo "purge binary logs to '$BinLog';" > temp.sql
#动态获取脚本路径
DIR="$( cd "$( dirname "$0" )" && pwd )"
BINPATH=`echo $DIR | sed -e 's/\/bin//'`
#获取当前系统时间
TIME=`date +%Y%m%d%H%M%S`
#while do 循环处理配置文件
while read LINE
do
#输出日志
echo $TIME >>$BINPATH/log/clean.log
echo $LINE >>$BINPATH/log/clean.log
#获取数据库ip
CHOST=`echo $LINE | awk -F ':' '{print $2}'`
#拼写数据库连接sql
SQLPARAM="mysql -h$CHOST -uroot -pXXXXX"
#查询当前连接数据库的日志信息列表
$SQLPARAM < $DIR/Getlog.sql > $DIR/templog.txt
#获取倒数七天的日志名称
BinLog=`tac $DIR/templog.txt | sed -n 7p | awk -F ' ' '{print $1}'`
#拼写清理日志sql,并保存在临时文件
echo "purge binary logs to '$BinLog';" > $DIR/temp.sql
#执行sql,清理mysql日志
$SQLPARAM < $DIR/temp.sql >>$BINPATH/log/clean.log
rm -rf $DIR/templog.txt
rm -rf $DIR/temp.sql
#循环读取配置文件内容
ps:配置文件实例
clean.conf
DB2:192.168.1.3
DB4:192.168.1.4
DB5:192.168.1.5
DB6:192.168.1.6
再再PS:
程序功能说明:
定期(每周六晚)清理mysql的binlog,保留七天的日志,其余日志删除。
使用说明:
1、只需要在/etc配置文件内配置数据库名称与IP即可,不需要增加其他配置。
2、脚本本身没有检测数据库是否连接正常的功能,默认连接正常,如果数据库异常最好不要配置,不然会连接超时。
PS:写完之后发现,mysql其实有相应的配置项可以设置binlog的数量,汗颜....,不过脚本的功能和逻辑是想通的,也不算是完全没有价值和收获,当然有些大神直接一行shell命令就可以解决这个需求,我目前还在努力向这个方向迈进。
linux shell:mysql bin_log定期清理脚本的更多相关文章
- [分享]运维分享一一阿里云linux系统mysql密码修改脚本
[分享]运维分享一一阿里云linux系统mysql密码修改脚本 大象吃豆子 级别: 小白 发帖 12 云币 27 加关注 写私信 只看楼主 更多操作楼主 发表于: 2014-09-3 ...
- linux系统mysql密码修改脚本
编写了一个适用于阿里云linux系统 mysql密码修改脚本,使用阿里云提供的一键安装包配置后,如果account.log文件删除,并且忘记mysql密码时,可以通过脚本来重置mysql密码. 附:一 ...
- Linux shell编写端口扫描脚本
Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...
- linux shell 写swoole重启脚本
linux shell 写swoole重启脚本 代码如下<pre>#!/bin/shkill `lsof -t -i:9501`sleep 2php /data/web/mircoweb/ ...
- Linux shell批量执行scp脚本工具
转载: linux shell + expect:批量scp脚本工具 2011-09-13 15:51:06 分类: Python/Ruby 最近在准备一个部署的任务,其中有一 ...
- Linux shell简单创建用户脚本
前面介绍简单的shell编写规则. 现在开始编写一个简单的shell脚本. Linux shell介绍 编写shell脚本 1.创建脚本文件 2.根据需求,编写脚本 3.测试执行脚本 ...
- linux shell mysql 数据库主从同步状态检查告警
需求: 1.监测数据库主从状态 2.获取数据库主要参数 3.可读取配置文件 4.部署位置自适应. 参考资料: http://blog.csdn.net/yf210yf/article/detail ...
- linux下mysql自动备份脚本
脚本放在 /home/user/mysql_backup.sh crontab # crontab -l # m h dom mon dow command 28 16 * * * /home/ ...
- LINUX SHELL 笔记 01: 脚本
root@iZwz:~/labs# vim myfirst root@iZwz:~/labs# cat myfirst #!/bin/bash clear echo "this is my ...
随机推荐
- Svn与Git的一些区别(转载)
把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本 ...
- 编程之美--2. Trie树 (Trie图)
#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助, ...
- iOS开发UI篇—Quartz2D使用(绘图路径)
iOS开发UI篇—Quartz2D使用(绘图路径) 一.绘图路径 A.简单说明 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. 1.创建路径 cgmutablepat ...
- genymotion模拟器相关知识
最近学react用到了Genymotion模拟器,但是因为墙的原因,遇到了很多阻碍,例如以下几种: 这里分享一个手动下载模拟器的方法. 1. 找到以下路径:C:\Users\Administrato ...
- Deprecated: Function split() is deprecated in ... 解决办法
本地测试的程序上传到服务器出现很多错误,Deprecated: Function split() is deprecated 查了原因是因为PHP的版本不同所导致的,本身程序开发的时候用的是PHP5 ...
- sprintf函数
sprintf函数用法举例 #include<stdio.h> int main() { //1.连接字符串 char a1[] = {'A', 'B', 'C', 'D', 'E', ' ...
- Ubuntu-搜狗输入法
Sougou(搜狗):要换fictx输入法,先删除ibus输入法.搜索sudo apt-get purge ibussudo apt-get autoremove 然后安装fcitx和拼音输入法(要安 ...
- Graphic geometry
Graphic有3个很重要的属性:geometry.symbol和attributes. •geometry属性定义的是一个几何对象,它是Graphic的基础,因为Graphic要表达的就是这个几何对 ...
- mysql linux终端登陆
mysql -uroot -hlocalhost -psorry 设置远程登录 用户名及密码 GRANT ALL PRIVILEGES ON *.* TO root@"%" IDE ...
- 上下margin重叠传递问题
我发现强迫症真的是我一个大病...每次都非得把所有情况都实验出来不可...BUT!!!!!!!!!悲催的是,这么多情况我根本记不住...还是要在写代码的时候不断出错再排错~受不了自己了!不过还是把这部 ...