向大家分享一个shell脚本的坑
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中。先找出其中一台远程机器,查看main进程运行情况[root@two002 tmp]# ps -ef|grep m
千家信息网最后更新 2024年10月20日向大家分享一个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安全错误
数据库的锁怎样保障安全
邮件服务器的攻击可分为
数据库同步工具开源
java调用数据库的问题
银行数据库表有哪些
大同新时代网络安全创新服务
网络技术哪些工作好
河北web前端软件开发费用
网络安全密钥密码是多少
mysql数据库是专业课吗
数据库测试脸型画法
边缘计算ai服务器价格
视频监控软件开发平台
学校里的网络安全课
dell服务器管理口在哪
连云港网络安全审计系统咨询机构
雷沃软件开发
软件开发身体累垮了
网络安全58同城
文件存储服务器扩容
广电网络安全技能大赛题库
北京大学图书馆数据库资源
农场管理系统数据库课设
java调用数据库的问题
自助缴费需要服务器吗
服务器要安装杀毒软件
湖南数据网络技术设计
dps-600服务器电源
mstp怎么保证网络安全的
数据库中string
天津pdu服务器电源要多少钱