前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本实现监控服务器mysql,解决服务器内存不足自动关闭mysql问题

shell脚本实现监控服务器mysql,解决服务器内存不足自动关闭mysql问题

作者头像
十四君
发布2019-11-28 14:58:15
2.2K0
发布2019-11-28 14:58:15
举报
文章被收录于专栏:UrlteamUrlteam

这个问题困扰许久了,因为我的阿里云服务器只有500M和1G内存,往往在网站访问量大的时候就会导致服务器的apache进程过多之后导致mysql服务被自动关闭。

其网站表现就会是数据库无法连接。之前尝试使用swap做交换区让服务器内存加大到2G,问题出现的频率就低了。但是偶尔还是会在大并发的访问下导致内存不足,so,做了一个脚本,能够自动监控服务器mysql 的状态,如果发现进程关闭就自动重启。

首先检测和重启的shell脚本代码如下:

代码语言:javascript
复制
#!/bin/bash
 
checkMysql(){
        CMDCHECK=`lsof -i:3306 &>/dev/null`
        Port="$?"
        PIDCHECK=`ps aux|grep mysqld|grep -v grep`
        PID="$?"
        if [ "$Port" -eq "0" -a "$PID" -eq 0 ];then
                return 200
        else
                return 500
        fi
}
startMysql(){
        /etc/init.d/mysql start
}
checkMysql
if [ $? == 200 ];then
        echo "Mysql is running..."
else
        startMysql
        checkMysql
        if [ $? != 200 ];then
                while true
                do
                        killall mysqld
                        sleep 2
                        [ $? != 0 ]&&break
                done
                startMysql
        fi
fi

直接复制过去,在服务器上建立一个mysql-listen.sh的文件,

然后提高这个文件的权限

chmod 777 mysql-listen.sh

然后先检查一下这个脚本是否可用,先关闭服务器的mysql

service mysql stop

然后访问你的网址,如果出现数据库连接失败说明数据已经关闭了,然后运行这个脚本

sh mysql-listen.sh

然后看是否有信息说明服务器已经正在运行mysql且提供一个进程号。

我在这个阶段出了错误,首先是没有改权限导致并有没有权限去启动mysql,其次启动mysql的命令在不同服务器上有时候是不一样的,我的则是

代码语言:javascript
复制
/etc/init.d/mysql start
部分的可能是
代码语言:javascript
复制
/etc/init.d/mysqld start

接下来需要让这个脚本隔一段时间自动运行。

使用crontab -e在最后一行补上

#第一次使用cron,得用序号选择编辑器

这里*/5中的5 是指5分钟一次。 后面是4个*代表日,月,星期的。最后是你脚本的路径。

保存后退出。

重启cron就可以了

service cron restart

这样就会每隔5分钟,执行一次检测mysql的脚本。

原创文章,转载请注明: 转载自URl-team

本文链接地址: shell脚本实现监控服务器mysql,解决服务器内存不足自动关闭mysql问题

Related posts:

  1. linux下free查看内存命令详细解析
  2. Linux查看实时带宽流量情况以及查看端口信息
  3. wordpress解决谷歌字体问题–与谷歌字体的战争!
  4. linux运维常用状态检测工具集锦
  5. 解决.htaccess: Invalid command ‘RewriteEngine’,问题
  6. 解决 启动mysql 提示 stop: Unknown instance
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-202,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Related posts:
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档