网站首页 > 博客文章 正文
上一篇文章讲到了通过修改系统参数配置,自动结束MySQL数据库中超时的Sleep的进程。本次将讲述如何通过编写Shell脚本结束Sleep进程。
第一步,连接数据库
第二步,查询sleep进程
第三步,过滤选择对应的进程
第四步,结束选中的进程
最后一步,部署脚本。
按照以上的步骤,对照脚本如下:
#It is used to kill processlist of mysql sleep # shell脚本:Kill掉MySQL中所有sleep的client线程 # 0 */1 * * * sh ~/mysql_kill_sleep_process.sh #!/bin/sh n=`mysqladmin processlist -uxxxx -pxxxx -hxx.xx.xx.xx1 |grep -i sleep | grep xx.xx.xx.xx2 | grep connect_user |wc -l` date=`date +%Y%m%d\[%H:%M:%S]` echo $n if [ "$n" -gt 5 ] then for i in `mysqladmin processlist -uxxx -pxxxxx -hxx.xx.xx.xx1 |grep -i sleep | grep xx.xx.xx.xx2 | grep bi_editer |awk '{print $2}'` do mysqladmin -uxxx -pxxx -hxx.xx.xx.xx1 kill $i echo "xxxx $i was killed!" >> ./sleep.log done echo "sleep is too many I killed it " >> ./sleep.log echo "$date : $n" >> ./sleep.log fi
不知道大家看了脚本还会不会继续读下去,相信大家一定能看懂,不过还是简单解释脚本的功能
脚本介绍
脚本中xx.xx.xx.xx1代表MySQL服务器地址,xx.xx.xx.xx2代表客户端地址
grep xx.xx.xx.xx2 筛选客户端
grep connect_user 筛选连接用户
脚本中增加了sleep进程的数量判断,当数量达到一定阈值时,采取结束进程的动作,否则不会,避免频繁的操作后台,对数据库以及服务器造成影响。
调度配置
在程序的第三行
# 0 */1 * * * sh ~/mysql_kill_sleep_process.sh #每个整点(每隔一个小时)执行一次
相信大家也很熟悉吧,对,这就是Linux的定时任务。当我们写完脚本,就需要考虑如何去执行它。我选择了配置定时任务的方式:crontab。使用crontab的方式很简单。在用户home目录下创建一个cron.xxx (xxx最好是用户名), 将以上配置写入(去掉#),然后执行 crontab cron.xxx,定时任务就配置成功了。
至此,shell脚本会每隔一个小时执行一次,再也不用为大堆的sleep进程烦恼了。
下期再见
如果你喜欢的话,请关注
如果你觉得是干货,请收藏
如果你觉得值得分享,请转发
欢迎大家留言
猜你喜欢
- 2024-09-11 kubernetes基础知识之项目部署(k8s项目部署)
- 2024-09-11 聊聊kingbus的startMasterServer(聊聊日常电视剧全集免费)
- 2024-09-11 这篇Redis文章,图灵看了都说好(redis原理图)
- 2024-09-11 PT-KILL长尾慢SQL有时失灵?自写脚本更靠谱
- 2024-09-11 基于 Spring Boot 的电商秒杀系统 jseckill
- 2024-09-11 技术分享 | 从库 MTS 多线程并行回放(一)
- 2024-09-11 常用数据库的最大连接数的获取和修改
- 2024-09-11 MySQL 调试环境搭建:VSCode + Docker
- 2024-09-11 Linux服务器百万并发实现与问题排查
- 2024-09-11 Elasticsearch + Logstash + Kibana 安装(全)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)