服务状态检查

【检测mysql是否存活】
ping_fail_count=0
for ((i=1;i<=3;i++));
do
check_mysql_active=`$mysqladmin -h$ip -P$port -uuser -p'password' ping 2>&1`
if [ "$check_mysql_active" = "mysqld is alive" ];then
echo "port is active."
break
else
echo "check $i time"
let ping_fail_count++
sleep 2
fi
done
if [ $ping_fail_count -eq 3 ];then
echo "port is not active!"
fi
 
【检测redis是否存活】
ping_fail_count=0
for ((i=1;i<=3;i++));
do
check_redis_active=`redis-cli -h $ip -p $port ping 2>&1`
if [ "$check_redis_active" = "PONG" ];then
echo "port is active."
break
else
echo "check $i time"
let ping_fail_count++
sleep 2
fi
done
if [ $ping_fail_count -eq 3 ];then
echo "port is not active!"
fi
 
【检测命令是否存在】
cmd=$1
command -v $cmd > /dev/null 2>&1 && ret=1 || ret=0
if [ $ret -eq 0 ];then
echo "command is not found"
else
echo "command is exist"
fi
 
【小数比较大小】
num1=$1
num2=$2
c=`echo "$num1"|awk 'BEGIN{FS="."} {print length($2)}'`
d=`echo "$num2"|awk 'BEGIN{FS="."} {print length($2)}'`
if [ $c -ge $d ];then
tmp=$c
else
tmp=$d
fi
temp=1
for ((i = 0; i < $tmp;i ++));
do
temp=${temp}0
done
a1=`echo "$num1*$temp" |bc`
b1=`echo "$num2*$temp" |bc`
c=`echo "$a1"|awk 'BEGIN{FS="."} {print $1}'`
d=`echo "$b1"|awk 'BEGIN{FS="."} {print $1}'`
if [ $c -gt $d ];then
echo "gt"
elif [ $c -eq $d ];then
echo "equal"
else
echo "lt"
fi
 
【去掉数字前面的0,比如去掉000081前面的0000】
a=$1
b=`expr $a + 0`
echo $b
 
 
【判断远程主机上文件是否存在】
#!/bin/bash
ssh_host="root@10.6.35.23"
mycnf="/srv/23.txt"
if ssh $ssh_host test -e $mycnf;then
echo "exist"
else
echo "not exist"
fi
 
【linux shell交互yes or no】
while true; do
read -p "请选择继续或退出(yes|no): " yn
case $yn in
yes ) break;;
no ) exit;;
* ) echo "Please input yes or no";;
esac
done
 
 
【判断IP地址是否合法】
ip=$1
valid_check=$(echo $ip|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')
if echo $ip|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then
if [ ${valid_check:-no} == "yes" ]; then
echo "$ip"
else
echo "ip $ip not available!"
fi
else
echo "ip format error!"
fi
 
【判断IP是否可以ping通】
#!/bin/bash
ip=$1
ping_fail_count=0
for ((i=1;i<=3;i++));
do
if ping -w 1 -c 1 $ip > /dev/null;then
echo -e "$ip ping is successful."
break
else
echo "ping $i times fail"
let ping_fail_count++
sleep 1
fi
done
if [ $ping_fail_count -eq 3 ];then
echo "$ip ping is failure!"
fi
 
【获取本机ip地址】
#!/bin/bash
get_server_ip()
{
[ -e /etc/os-release ] && centos_version=`cat /etc/os-release|grep VERSION_ID|awk -F"=" '{print $2}'|sed 's/\"//g'`||centos_version=0
cat /proc/net/dev|tail -n +3|grep -v lo|awk -F: '{print $1}' > /tmp/cardlog
cat /tmp/cardlog | while read card
do
if [ $centos_version -eq 7 ];then
server_ip=`ifconfig $card | grep -w "inet"|awk '{print $2}'`
else
server_ip=`ifconfig $card | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}'`
fi
if [ -z "$server_ip" ];then
continue
else
echo $server_ip
break
fi
done
}
server_ip=$(get_server_ip)
echo "$server_ip"
====================================或者======================================
#!/bin/bash
IP=`ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g'| awk '{print $1}'`
NETMASK=`ifconfig eth0 | grep "inet addr"|sed 's/^.*Mask://g'`
echo "$IP/$NETMASK"
exit
 
 
 
 
 
 
posted @ 2025-07-28 11:09  榆812  阅读(9)  评论(0)    收藏  举报