设备监控,liunx 脚本实时监控服务

服务器主机会出现断电,和其他jar包服务进程被杀死的情况,写个shell脚本 定时监控它们。

当然,断电重启的时候有些命令设置开机重启
再写个心跳相关的接口 监控主机服务 和摄像头状态~

一.命令说明

ps aux | grep 进程名 | grep -v grep :进程存在则输出信息,不存在则没输出
ps -ef | grep 进程名 | grep -v grep | wc -l :进程存在则输出行数(也就是数量),不存在则输出0

二、编写要执行脚本

#!/bin/bash
# 指定要检测的端口号  zlmeida
PORT_TO_CHECK=8082
# 关联JAR包名称和相应的启动命令
declare -A JAR_COMMANDS=(
    ["wvp-pro-assist.jar"]="/usr/bin/java -jar /opt/app/assist/wvp-pro-assist.jar --spring.config.location=/opt/app/assist/application-prod.yml"
    ["wvp-pro.jar"]="/usr/bin/java -jar /opt/app/pro/wvp-pro.jar --spring.config.location=/opt/app/pro/application-prod.yml"
)

# 检测端口是否被占用
if lsof -Pi :$PORT_TO_CHECK -sTCP:LISTEN -t > /dev/null; then
    echo "Port $PORT_TO_CHECK is already in use. Cannot proceed."
else
   /opt/app/ZLMediaKit/release/linux/Debug/MediaServer -d &
fi



# 遍历所有JAR包
for JAR_NAME in "${!JAR_COMMANDS[@]}"
do
    # 检查Java进程是否在运行
    if pgrep -f "$JAR_NAME" > /dev/null
    then
        echo "$JAR_NAME is running."
    else
        echo "$JAR_NAME is not running. Restarting..."
        
        # 获取对应JAR包的启动命令
        COMMAND="${JAR_COMMANDS[$JAR_NAME]}"
        
        # 执行启动命令
        eval "$COMMAND"
        # 你也可以选择发送通知、记录日志等其他操作
        
    fi
done

三、手动测试执行脚本

赋予权限:chmod 777 look_jar.sh

执行脚本: ./look_jar.sh
运行结果:

在这里插入图片描述
个错误通常是由于脚本文件的换行符格式不正确导致的。在Windows系统中,换行符是 \r\n(回车和换行),而在Unix/Linux系统中,是 \n(换行)。

在你的情况下,看起来脚本文件 look_jar.sh 是在Windows系统中创建的,因此包含了Windows风格的换行符。在Linux系统下执行脚本时,可能会导致解释器无法正确识别。

你可以使用 dos2unix 工具来将文件转换为Unix风格的换行符。如果系统上没有安装 dos2unix,你可以使用 sed 命令进行转换。以下是一个示例:

sed -i 's/\r$//' look_jar.sh

kill 进程号(PID):

 ps -ef | grep look_jar.sh
kill  <pid>

四、配置linux系统定时任务

# u代表所有者,x代表执行权限,+表示增加权限
chmod u+x look_jar.sh
chmod u+x look_jar.log
#配置系统定时任务命令
crontab -e
 
#写入需要执行的脚本,每1小时运行一次(cron表达式)
0 */1 * * * /opt/app/look_jar.sh  >> /opt/app/look_jar.log

#把脚本的错误重定向到定向到日志文件
*/1 * * * * /opt/app/look_jar.sh >> /opt/app/look_jar.log 2>&1
#重启系统定时任务(才会生效)
service crond restart
#或者
systemctl restart crond.service

#或者
sudo systemctl restart cron

测试的时候可以把脚本周期设置短一点,用来测试
*/5 * * * * /opt/app/look_jar.sh >> /opt/app/look_jar.log

五、测试

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值