shell编程——linux下远程一键检查mysql服务的运行状态

    在服务器运行的过程中难免有某些服务挂掉的情况,例如mysql、tomcat等,这时需要有定时脚本去检查它们的状态,增加系统的健康状况。当有多个不同的服务挂在不同的服务器上时,一键检查也需要一步完成。这里以mysql为例,通过一台服务器控制另一台服务器上的mysql服务状态的检查。

    以hadoop101为主服务器控制hadoop100上的mysql服务启停,在hadoop101上命名listen_main.sh文件,将以下写入listen_main.sh

#!/bin/bash

mysqlIP=hadoop100
rsync /home/huzee/Desktop/mysql_listen.sh root@${mysqlIP}:/root/
ssh root@${mysqlIP} "/bin/bash /root/mysql_listen.sh"
echo "${mysqlIP} is done"
echo "#######################"

    同样,在运行着mysql服务的服务器hadoop100上创建mysql_listen.sh写入以下内容

#!/bin/bash

# 获取mysql进程ID
mysqlID=$(ps -ef | grep mysqld | grep -v "grep"|awk '{print $2}')

# 判断进程是否存在
if [[ $mysqlID ]]; then
        # 操作数据库    
        /usr/bin/mysql -e "
        create database if not exists TT;
        use TT;
        create table if not exists aa(uname varchar(10),uage int(3));
        insert into aa values('Huzee',18);
        drop database TT;
        quit"

        # 上述sql命令执行状态
        FLAG=$?

        if [ ${FLAG} == 0 ];then
                echo "MYSQL is running"
        else
                echo "At time: `date` :MYSQL server ERROR:insert data failed">>/home/huzee/Desktop/mysql_logs
                service mysqld restart
        fi
else
        echo "At time: `date` :MYSQL server is stoped">>/home/huzee/Desktop/mysql_logs
        service mysqld start
fi

运行主服务器上的listen_main.sh,mysql_main.sh的目的是将本地的mysql_listen.sh文件同步到mysql服务的服务器上(hadoop100),并远程执行hadoop100上的mysql_listen.sh文件。

将mysql服务器停止,再试试listen_main.sh

检查到hadoop100上的mysql服务停止,并重新启动了mysql服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值