公司服务器tomcat经常自动挂掉,具体原因无法找到。所以做了这次调整。让Linux自动检测tomcat是否宕机
亲手搭建的博客系统经常会宕机,一直想着定时检测tomcat服务挂掉之后进行重启操作。昨天终于有时间,就把这个事情做了一下,最终可以正常工作。本篇就记录一下我解决 linux 环境定时重启 tomcat 这件事情。
阅读本文大概需要5分钟 有时候,我们挂在服务器上的应用会因为一些特殊情况挂掉,致使项目经理又对我们说:又挂了!赶紧去看看! 于是有了以下脚本,使用shell编写,用于定时检查应用情况,挂掉则重启。 这里以tomcat为例。 根据以下步骤即可实现: 1.创建并编辑脚本 vim test.sh 2.复制以下脚本内容至.sh文件中 #自动检测某个tomcat状态(w精确匹配 v去除某种进程 awk数据处理 print $2 打印第二列) TomcatID=$(ps -ef |grep -w 'apache-t
检测逻辑:连续3次访问tomcat提供的接口,若3次响应码都不为200,则自动重启tomcat 脚本内容:
安装 yum 安装 # 安装 yum install epel-release -y yum install supervisor -y pip 安装 # 安装 yum install python-pip -y pip install supervisor # 生成主配置文件 echo_supervisord_conf > /etc/supervisord.conf ---- 修改主配置文件 # pip 安装方式需要修改,yum安装方式不用修改 mkdir -p /etc/supervisord.d m
新开发了一个 Spring Boot 项目,直接打包部署到了服务器,使用bash脚本启动程序,日志输出到直接指定nohup.out文件。
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
使用supervisor进程管理命令之前先启动supervisord,否则程序报错。 使用命令supervisord -c /etc/supervisord.conf启动。 若是centos7:
昵称:院长 性别:男 爱好:羽毛球,乒乓球,嗨歌,钻研技术 技能:在下方 职位:落魄技术
执行命令生成supervisor.conf配置文件到/etc/目录,(自行选择目录)
针对已经添加至Tomcat中的项目,每当我们修改该项目的一些配置文件,保存后,Tomcat就会自动重启/加载,重新扫描加载配置文件,控制台就会弹出很多信息,很影响我们的开发效率,很烦人,那么我们如何把Tomcat的自动重启关掉呢?
Keepalived下载地址https://www.keepalived.org/download.html,下载keepalived-2.1.5.tar.gz安装包
近年来,Resin作为一个新秀Web服务器受到了很多开发者的关注,也有一些公司将Resin指定为作为开发软件必须要使用的Web服务器。那么Resin服务器与Tomcat服务器相比到底怎么样呢。
作为一名 Linux 工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,也注意收集一些大佬写过的脚本,汇总整理一下,欢迎收藏,与君共勉!
对公司的jira访问状态进行监控,当访问状态返回值是200的时候,脚本执行结果为1;其他访问状态返回值,脚本执行结果是0。然后将该脚本放在zabbix进行监控,当非200状态时发出报警。 jira访问状态的监控脚本为: 在jira部署机(比如是192.168.1.21)的zabbix监控脚本目录下编写监控脚本(jira的端口为8080): [root@jira ~]# cd /data/zabbix/monitor_scripts/ [root@jira monitor_scripts]# cat jir
将此下面的代码保存到一个.txt文件中,然后将后缀名命名为.vbs,再然后双击运行即可。
(1)用户猜数字 #!/bin/bash # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。 # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1‐100 的随机数 num=$[RANDOM%100+1] echo "$num" # 使用 read 提示用户猜数字 # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于
(15)编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机
有时Docker服务出现异常,或者服务器出现异常,需要重启Docker服务或者服务器; 如果希望有一部分基础的或者常用的容器,在服务或者服务器重启的时候,可以实现自动启动,仅需使用命令进行简单配置即可实现。
官网:http://www.supervisord.org/running.html#supervisord-command-line-options
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
前言 ---- 之前的文章说过 由 PHP 转到 Java 之后,非常不适应的一点就是代码部署过程耗时长,调试不便,虽然可以使用 debug,但有时候还是需要修改代码,重新部署测试机系统,整个流程需要: 使用 mvn 命令将项目打成 war 包,耗时 1 min; 从开发机向测试机上传 war 包,公司内使用无线局域网,上传速度峰值只有 1M 不到,而且很不稳定,面对 100M+ 的 war 包,有点力不从心,此步骤耗时 2.5 min; 服务端重启 docker 进程,耗时 1 min; 再加上需要两台机
在上文Docker – 系统整洁之道 – 0中已经对Docker是什么,安装Docker以及怎么运行一个简单的容器有了初步了解,这篇文章介绍Docker的一些命令和Docker镜像的使用及操作。
腾讯云CVM云服务器或轻量应用服务器如何DD一个干净的Linux系统呢?用过腾讯云的都知道,自带系统内置了并不是每个人都喜欢的云监控和云镜等服务,最彻底的解决方案技术dd。本站简单制作了一个图文教程,以上海1C2G轻量应用服务器DD Debian 11为例。
然后是对应的配置文件config.properties: [plain] view plain copy
在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在
用了shell脚本写了一个监控。通过curl一个固定页面的200状态码,如果是200,就说网站是正常的,如果不是200就自动重启网站,然后发邮件到QQ邮箱。自己在上QQ的同时,通过微信也可以收到报警,不但可以收到报警,还可以解决问题。基本上也可以解决web的故障。
TensorFlow Serving服务在Kubernetes集群中的部署方案,如果是从零开始建设,那么可以通过Kubernetes原生的Service+KubeDNS实现服务的注册与发现,并通过对接LVS集群进行负载均衡。因此我们在TaaS中开发了Kube2LVS模块,负责对TensorFlow Serving服务进行ListAndWatch,实现TensorFlow Serving Service Info动态reload到LVS config中。
为什么80%的码农都做不了架构师?>>> [program:tomcat] command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run stdout
在容器化技术的领域中,Docker 无疑是最为广泛使用的工具之一。而 docker run 命令则是使用 Docker 进行容器管理的核心命令之一。本文将深入探讨 docker run 命令的使用方法,旨在帮助初学者快速入门并掌握该命令的各种用法。
项目场景:首先需要二台机器,一个是客户端,用来部署项目运行的机器;一个是私服,用来部署本地镜像仓库的,这二台机器都要安装配置好docker。
PM2.js是一个Node.js应用程序的进程管理器,可以帮助开发人员在生产环境中管理和监控Node.js应用程序或其他程序的进程。它可以自动重启应用程序,监控应用程序的资源使用情况,以及提供实时日志记录和错误处理等功能。此外,PM2.js还可以通过集成的API和CLI工具来管理和监控多个Node.js应用程序。
概要 前面我们讲述了如何搭建一个简单的 spring Boot 应用(参见Spring Boot - 初探),这里,我们来学习如何对项目进行相关的配置,包括系统构建、自动配置、依赖注入、开发工具等,使其更好地运行。 系统构建 为了便于依赖管理,官方建议我们使用Maven或者Gradle,以便进行依赖管理。当然,Spring Boot 也支持其他系统构建方式(如Ant)。 使用 Spring Boot ,你不需要提供相关依赖的版本,Spring Boot 会自动对其
准备工作: 安装环境:Win10 64位 需要开启Hyper-V 下载Docker for Windows 从官网的下面地址可以下载点击下载 安装方法: 1、先开启win10的Hyper-V
Monit是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于Linux/Unix平台。官网地址:https://mmonit.com/ 在CentOS 6.4上配置Monit的步骤:
EDAS支持语言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安装等编译工具。EDAS初级版仅支持应用的部署管理,不支持HSF功能。EDAS基础版不支持RPC框架。 EDAS提供高性能的RPC框架,能构建高可用的分布式系统,考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节。EDAS能单独部署到公司内网(轻量配置中心)。 EDAS HSF服务框架保证用户每次分布式调用的稳定与安全。在服务注册、服务订阅以及服务调用等环节都进行严格的服务鉴权。 HSF设置超时时间 : 通过HSF标签methodSpecials和clientTimeout进行配置,优先级由高到低是 : 客户端methodSpecials>客户端clientTimeout>服务端methodSpecials>服务端clientTimeout EDAS控制台域名 : https://edas.console.aliyun.com EDAS控制台提供日志浏览功能,可查看服务器上所部署的应用运行日志。收敛日志用于将单个应用中类似格式的日志合并和排序。收敛日志配置后需要等待大概5分钟才能生效。 EDAS安装轻量配置中心 : 启动配置中心将会占用此台机器的8080和9600端口,需要在hosts中添加 {轻量配置中心公网 ip} jmenv.tbsite.net。如果此台机器是多网卡的,可启动脚本startup.bat或startup.sh中添加启动参数: -Daddress.server.ip={指定的 IP 地址};通过 -Dhsf.server.ip参数指定要注册服务的IP。 EDAS 服务限流的限流规则(限流规则仅适用于服务提供者)能够从QPS和线程两个维度进行配置。可进行HSF限流和HTTP限流。 EDAS 提供了从响应时间维度对降级规则(降级规则仅仅适合服务消费者)的配置。 EDAS 鹰眼监控系统能够分析分布式系统的每一次系统调用、消息发送和数据库访问。主要包括应用拓扑(可查看调用拓扑和流量QPS),调用链查询(可查看慢业务和出错业务),调用链详情(基于TraceId查询)。 EDAS 提供报警功能,但目前只有短信与邮件通知的方式,报警联系人只能是主账号或者子账号。 EDAS 的应用主要分为两种类型:中间件服务化应用(JAR/WAR包类型的普通应用和Docker应用)和 Kubernetes 应用。Kubernetes应用只支持VPC网络。 EDAS 的应用部署类型有两种 : ECS独占实例(在一台独立的ECS机器上,仅允许部署单独一个应用),Docker实例(单个应用在同一ECS上只能部署一个实例),所以一台ECS可以部署多个实例。 EDAS 能够针对应用的服务调用情况,对服务的QPS、响应时间(RT)和出错率进行全方面的监控。 EDAS 能够针对应用的运行状态,对机器的CPU、内存、负载(Load)、网络和磁盘等基础指标进行详细的监控。EDAS还提供容器监控功能(应用诊断)。基础监控(可提供以应用为维度的数据)面向的是机器,容器监控面向是应用所在的容器。基础监控存在时延,容器监控基本是实时的。 EDAS 提供弹性伸缩功能来根据集群内服务器的CPU、RT和Load三个指标实现自动的扩容或者缩容。 EDAS 对应用的生命周期管理,包括创建、部署、启动/停止和删除(应用删除不可恢复)。可设置JVM参数,Tomcat参数,可对应用的实例分组(可按分组部署应用,添加实例到分组),可配置负载均衡。可配置健康检测URL。 EDAS 包含两种集群:Swarm(部署普通应用和Docker应用)和Kubernetes集群(部署Kubernetes应用)。 EDAS 的配置推送分为全局配置推送和应用内部的配置推送。全局配置推送能操作该用户的所有配置信息,应用内的配置推送只能操作该应用所属的配置信息。一个配置信息由三元组(group、DataId、Content)组成。 EDAS 提供主子账号体系,付费账号都是主账号(拥有EDAS所有资源,所有权限),但不是所有的主账号都是付费账号。1个付费账号最多能绑定5个主账号。RAM子账号由主账号在RAM系统中创建,子账号名要在主账号内唯一。RAM账号有两种授权方式 : RAM授权,EDAS授权(两种方式互斥,有了RAM授权,那么就不能在EDAS中授权),主账号可以对绑定的子账号(用户)进行权限分配、资源分配等。应用的授权只能是主账号对子账号进行授权。 EDAS 的资源主要是指云服务器ECS(Elastic Compute Service)、负载均衡SLB(Server Load Balancer)、专有网络VPC(Virtual Private Cloud)这三类。 VPC环境调用链和监控数据需要有访问请求流量才会产生,如果无客户访问网站,
最近在做基于openresty的waf,在测试openresty的过程中用openresty替代了原nginx,结果第二天又自动切换回了原nginx,通过ps -ef 看到nginx在凌晨3点多自动重启。连续几天在多个机器上都发现同样的情况。
TomcatID=(ps -ef |grep tomcat |grep -w ‘tomcat‘|grep -v ‘grep‘|awk ‘{print 2}‘)
then后面跟符合条件之后执行的程序,可以放在[]之后,用;分隔。也可以换行写入,
为防止操作权限不足,建议切换root用户,当然如果你对Linux命令熟悉,能够自主完成权限更新操作,可以不考虑此推荐。
在之前的一篇文章《终端自动化测试探索之路》中提到过当发生断电等情况,服务器重启之后如何快速恢复自动化服务,这里针对这个问题具体讲讲我的实现方式。
最近工作中使用的自动化脚本涉及的一个功能是通过shell脚本来控制进程的重启(因为自己以前写过, 但是因为归纳总结做的不到位,导致找不到原来的笔记了)只能从网上搜下大概的,然后根据自己的理解重新整理下了, 整理的同时也复习了一下基本的shell脚本的编写, 做到温故知新!
本内容是关于如何在Linux上的VirtualBox中运行macOS Catalina Beta版的简短指南。
监控对企业来说至关重要,以确保必要的系统正常运行。监控IT基础架构设置的不同,可能会导致大量的发故障和问题,如果不正确的使用监控工具难于保证系统健康运行。
注:03点30分调用该脚本,成功则出现:crontab: installing new crontab。
测试机总是断电,导致重启后Oracle不自动重启,需要手工操作,因此可以设置成自启动模式。
AMD-Xilinx MPSoC的器件里,提供了内置的Watchdog。在Vivado里选择Watchdog,并在设备树里使能Watchdog,还不能在Linux中正常使用。
领取专属 10元无门槛券
手把手带您无忧上云