• 监听服务器jar运行,及重启脚本


    1、简单监听服务并重启脚本

    业务需求,服务器要监听停止的jar服务,十分钟一次监听,出现停止就重启服务

    1. #!/bin/bash
    2. # “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行
    3. # 变量
    4. jarName=quartz_cgq_5501.jar
    5. jarName_TWO=quartz_cgq_5506.jar
    6. jarName_THREE=suoxin_quartz_cgq_5503.jar
    7. #配置服务日志文件目录路径
    8. LOG_FILE=/usr/local/kuangshan/jiaoben/quartz_cgq_5501.log
    9. LOG_FILE_TWO=/usr/local/kuangshan/jiaoben/quartz_cgq_5506.log
    10. LOG_FILE_THREE=/usr/local/kuangshan/jiaoben/suoxin_quartz_cgq_5503.log
    11. jarUrl=/usr/local/kuangshan/
    12. #webUrl=https://www.baidu.com/
    13. # grep -v grep: 在文档中过滤掉包含有grep字符的行
    14. # awk '{print $2}': 按空格截取第二个
    15. #pid=`ps -ef|grep $jarName |grep -v grep| awk '{print $2}'`
    16. # wc -l: jar包进程的数量
    17. num=`ps -ef|grep $jarName |grep -v grep| awk '{print $2}'| wc -l`
    18. MonitorFunction(){
    19. # 输出文本
    20. echo "[info]进入监控脚本"`date +'%Y-%m-%d %H:%M:%S'`
    21. # -eq: 等于
    22. if [[ $num -eq 0 ]]; then
    23. echo "[error]进程一,不存在,重启"`date +'%Y-%m-%d %H:%M:%S'`
    24. nohup java -jar $jarUrl/$jarName > $LOG_FILE 2>&1 &
    25. else
    26. echo "[info]页面一,存在不用重启,time="`date +'%Y-%m-%d %H:%M:%S'`
    27. fi
    28. }
    29. MonitorFunction
    30. numTwo=`ps -ef|grep $jarName_TWO |grep -v grep| awk '{print $2}'| wc -l`
    31. MonitorFunctionTwo(){
    32. # 输出文本
    33. echo "[info]进入监控脚本二"`date +'%Y-%m-%d %H:%M:%S'`
    34. # -eq: 等于
    35. if [[ $numTwo -eq 0 ]]; then
    36. echo "[error]进程二,不存在,重启"`date +'%Y-%m-%d %H:%M:%S'`
    37. # >> /dev/null : jar包生成日志不打印到此脚本日志中
    38. nohup java -jar $jarUrl/$jarName_TWO > $LOG_FILE_TWO 2>&1 &
    39. else
    40. echo "[info]页面二,存在不用重启,time="`date +'%Y-%m-%d %H:%M:%S'`
    41. fi
    42. }
    43. MonitorFunctionTwo
    44. numThree=`ps -ef|grep $jarName_THREE |grep -v grep| awk '{print $2}'| wc -l`
    45. MonitorFunctionThree(){
    46. # 输出文本
    47. echo "[info]进入监控脚本三"`date +'%Y-%m-%d %H:%M:%S'`
    48. # -eq: 等于
    49. if [[ $numThree -eq 0 ]]; then
    50. echo "[error]进程三,不存在,重启"`date +'%Y-%m-%d %H:%M:%S'`
    51. # >> /dev/null : jar包生成日志不打印到此脚本日志中
    52. nohup java -jar $jarUrl/$jarName_THREE > $LOG_FILE_THREE 2>&1 &
    53. else
    54. echo "[info]页面三存在不用重启,time="`date +'%Y-%m-%d %H:%M:%S'`
    55. fi
    56. }
    57. MonitorFunctionThree

    2、凌晨重启jar服务脚本

    1. #!/bin/bash
    2. #执行bash shell配置
    3. source ~/.bash_profile
    4. #配置服务jar包文件路径
    5. SERVICE_NAME=/usr/local/kuangshan/quartz_cgq_5501.jar
    6. SERVICE_NAME_TWO=/usr/local/kuangshan/quartz_cgq_5506.jar
    7. SERVICE_NAME_THREE=/usr/local/kuangshan/suoxin_quartz_cgq_5503.jar
    8. #配置服务日志文件目录路径
    9. LOG_FILE=/usr/local/kuangshan/jiaoben/quartz_cgq_5501.log
    10. LOG_FILE_TWO=/usr/local/kuangshan/jiaoben/quartz_cgq_5506.log
    11. LOG_FILE_THREE=/usr/local/kuangshan/jiaoben/suoxin_quartz_cgq_5503.log
    12. #杀死指定jar包进程
    13. ps -ef|grep $SERVICE_NAME |grep -v grep|cut -c 9-15|xargs kill -9
    14. ps -ef|grep $SERVICE_NAME_TWO |grep -v grep|cut -c 9-15|xargs kill -9
    15. ps -ef|grep $SERVICE_NAME_THREE |grep -v grep|cut -c 9-15|xargs kill -9
    16. #启动jar包
    17. nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME > $LOG_FILE 2>&1 &
    18. nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME_TWO > $LOG_FILE_TWO 2>&1 &
    19. nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME_THREE > $LOG_FILE_THREE 2>&1 &
    20. echo "服务重启时间:"`date`>>restart.out

     3、先测试脚本是否能运行

    给脚本赋权

    chmod a+x monitor.sh

    运行脚本文件 

    sh monitor.sh

    如果出现下面错误,则输入命令,转化为unix格式

    sed -i 's/\r//' monitor.sh

    3、使用crontab的定时任务

    crontab -e

      0 0 * * *表示凌晨执行 

      */10 * * * * 表示十分钟执行一次

    0 0 * * * bash /usr/local/kuangshan/jiaoben/springStart.sh >> /usr/local/kuangshan/jiaoben/log.log
    */10 * * * * bash /usr/local/kuangshan/jiaoben/monitor.sh >> /usr/local/kuangshan/jiaoben/logTWO.log

    查看编辑的定时任务 

     crontab -l

    crontab在线输出小工具

  • 相关阅读:
    图神经网络入门基础
    飞桨paddlespeech语音唤醒推理C实现
    一本通 1304:数的划分(线性DP)
    数据被加密?.locked1勒索病毒的简单解决方法
    WSDM‘22推荐系统论文梳理
    9:00面试,9:08就出来了,问的实在有点变态
    【LeetCode-中等题】15. 三数之和
    2022年CCPC桂林站C题Array Concatenation
    2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
    视频监控/安防监控/视频云存储EasyCVR平台设备分配模块升级详解
  • 原文地址:https://blog.csdn.net/weixin_43288858/article/details/125996137