shell 小数比较案例

本文介绍了一个用于监控Redis内存使用的Shell脚本示例。该脚本通过SSH连接到远程服务器并利用Redis命令获取内存峰值信息,然后将数据记录到本地文件中。如果内存使用超过阈值,则会触发警告邮件通知。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例一:

[was@was-rsync ~]$ vi /backall/ita-scripts/monitor/redis-mem.sh    
#!/bin/bash
used_memory_peak_human16390=`ssh root@10.10.1.99 /data/tools/rediscluster/redis-4/src/redis-cli -h 10.10.130.93 -p password in
fo | grep used_memory_peak_human | awk -F ":" '{print $NF}'| awk -F "G" '{print $1 }'`
sleep 3
used_memory_peak_human16392=`ssh root@10.10.1.99 /data/tools/rediscluster/redis-4/src/redis-cli -h 10.10.130.93 -p password in
fo | grep used_memory_peak_human | awk -F ":" '{print $NF}'| awk -F "G" '{print $1 }'`
sleep 3
used_memory_peak_human16394=`ssh root@10.10.1.99 /data/tools/rediscluster/redis-4/src/redis-cli -h 10.10.130.93 -p password in
fo | grep used_memory_peak_human | awk -F ":" '{print $NF}'| awk -F "G" '{print $1 }'`

echo ${used_memory_peak_human16390} | grep -v M > /tmp/used_memory_peak_human.log
echo ${used_memory_peak_human16392} | grep -v M >> /tmp/used_memory_peak_human.log
echo ${used_memory_peak_human16394} | grep -v M >> /tmp/used_memory_peak_human.log

for i in cat /tmp/used_memory_peak_human.log ;do
#if [ ${used_memory_peak_human16394} -gt 3 ];then
if [ `expr ${used_memory_peak_human16394} \> 3` -eq 0 ];then
echo is ok
else
(/usr/bin/uuencode /tmp/used_memory_peak_human.log report.txt;)|/usr/bin/email  -s  "redis used_memory_peak_human is warning" yingchun.wang163@163.com

fi
done

 

案例二:

shell的 [ ] 对于数值的判断都是基于整数的,如果碰到小数就无能为力了。google了一把发现用awk的牛人多,不过发现一个兄弟的更加好。

if [ `expr $a \> $b` -eq 0 ];then
    echo $b is bigger
else
    echo $a is bigger
fi

通过expr来进行判断,所以a 和 b 可以是小数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值