向大家分享一个shell脚本的坑
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中。先找出其中一台远程机器,查看main进程运行情况[root@two002 tmp]# ps -ef|grep m
千家信息网最后更新 2026年11月03日向大家分享一个shell脚本的坑
打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中。
先找出其中一台远程机器,查看main进程运行情况
[root@two002 tmp]# ps -ef|grep mainroot 23448 23422 0 11:40 pts/0 00:00:00 grep --color=auto main [root@two002 tmp]# ps -ef|grep main|grep -v grep|wc -l
shell检查脚本如下
[root@two002 tmp]# cat /tmp/main_check.sh#!/bin/bashNUM=$(ps -ef|grep main|grep -v grep|wc -l)if [ $NUM -eq 0 ];then echo "It's not good! main is stoped!"else echo "Don't worry! main is running!"fi
执行脚本
[root@two002 tmp]# sh -x /tmp/main_check.sh++ grep main++ grep -v grep++ wc -l++ ps -ef+ NUM=2+ '[' 2 -eq 0 ']'+ echo 'Don'\''t worry! main is running!'Don't worry! main is running! [root@two002 tmp]# sh /tmp/main_check.shDon't worry! main is running!
如上执行结果,发现脚本执行过程中,看到赋予NUM参数的结果值是2!但是手动执行ps -ef|grep main|grep -v grep|wc -l的结果明明是0!!
这是由于grep匹配的问题,需要grep进行精准匹配,即"grep -w"。这就需要将main_check.sh脚本内容修改如下:
[root@two002 tmp]# cat /tmp/main_check.sh#!/bin/bashNUM=$(ps -ef|grep -w main|grep -v grep|wc -l)if [ $NUM -eq 0 ];then echo "Oh!My God! It's broken! main is stoped!"else echo "Don't worry! main is running!"fi
再次执行检查脚本,就OK了
[root@two002 tmp]# sh -x /tmp/main_check.sh++ grep -w main++ grep -v grep++ wc -l++ ps -ef+ NUM=0+ '[' 0 -eq 0 ']'+ echo 'Oh!My God! It'\''s broken! main is stoped!'Oh!My God! It's broken! main is stoped! [root@two002 tmp]# sh /tmp/main_check.shOh!My God! It's broken! main is stoped!
故在跳板机上,批量检查远程服务器的main进程运行状态的脚本为:
[root@tiaoban ~]# cat /usr/bin/main_check#!/bin/bashNUM=$(ps -ef|grep -w main|grep -v grep|wc -l)if [ $NUM -eq 0 ];then echo "Oh!My God! It's broken! main is stoped!"else echo "Don't worry! main is running!"fi [root@tiaoban ~]# cat /opt/script/main_check.sh#!/bin/bash for i in $(cat /opt/ip.list)do/usr/bin/rsync -e "ssh -p22" -avpgolr /usr/bin/main_check $i:/usr/bin/ > /dev/null 2>&1ssh -p22 root@$i "echo $i;sh /usr/bin/main_check"done
脚本
检查
结果
进程
运行
服务器
跳板
服务
精准
健康
内容
再次
参数
如上
情况
手动
机器
状态
过程
这是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
互联网科技战争
麻工互联网科技
深圳科技互联网
新浪科技互联网
佩信高科技互联网
哈尔滨秒房互联网科技有限公司
青海省互联网新科技
开启互联网科技时代小说
中国的互联网科技企业的崛起
中化能源互联网科技招聘
互联网为啥属于高科技
福建科技产业互联网发展
移动互联网科技公司
开一家科技互联网公司需要多少钱
互联网保险科技创业
高科技互联网套路
雨阳互联网卡科技有限公司
产业互联网科技服务公司
云鲸互联网络科技有限公司
科技创新与互联网经济
港股互联网科技股
互联网络科技有限公司
上海亿帐通互联网科技
宝灵互联网科技有限公司
杭州壁岐互联网科技有限公司
晋城互联网科技
烟台灵鸽互联网科技有限公司
华人运通互联网科技公司
东风日产互联网科技公司叫什么