如何让远程服务器死机自动重启,

如何让远程服务器死机自动重启,,第1张

第一步:当远程桌面服务无法顺利使用后我们首先要确定的是服务器是否真的死机。我们可以通过ping目标服务器IP看是否畅通或者访问该服务器上的相关网络服务看是否还能顺利应用,当然也可以通过UNC地址来判断其网络访问是否顺利。当以上任何一个判断返回成功结果后,我们就可以使用下面的方法来远程重启服务器了。(如图)

第二步:接下来我们通过shutdown命令,在远程桌面不能顺利连接的情况下通过网络重启服务器。具体操作是在命令提示窗口中执行“shutdown /m \\服务器IP地址 /r”,这样服务器将自动重新启动。我们在ping -t命令窗口中也将看到目的网络连接情况从畅通到requeset timed out,这说明目的服务器已经在进行重启操作。(如图)

如果之前没有连接过目的服务器的话我们在执行shutdown命令前还需要使用“et user \\服务器IP地址 “密码” /user:用户名”进行连接,例如“net user\\129.168.12.1 123456 /user:administrator”(管理员用户名administrator,密码123456)。只有建立了相应的IPC$连接后shutdown才能够发挥作用,不连接就执行shutdown的话目的服务器并不会乖乖重启

方法一:使用windows自带的shutdown命令,远程重启服务器

远程失败有可能是服务器死机造成的,在重启之前,一定要判断一下服务器是否真的是死机了,这个可以通过ping目标服务器的IP来检查,如果确定是死机了,我们就可以进行下一步操作了。

通过shutdown命令可以执行网络重启服务器。具体命令是“shutdown/m\服务器IP地址/r”,执行该命令之后就可以自动重启了,重启之后可以通过ping命令检查一下是否重启成功。

方法二:使用第三方远程控制软件,重启服务器

远程服务器维护所占的比重越来越大,很多时候维护服务器是不直接去机房的,而是远程操作服务器,大家可以通过软件实现服务器远程。有些软件可以实现远程控制、桌面共享和文件传输,它让远程更简单快速,而且软件所占的内存比较小。

方法三:硬件远程重启服务器

如果服务器出现不能联网的情况,就只能通过硬件进行重启了。比较好用的有一个网络人电脑远程开机卡,它可以通过拨打电话唤醒远程电脑的启动设备,这样操作起来就会方便很多。这样服务器开启之后,就可以通过其他的方式远程桌面了。

以上就是如何正确重启服务器的全部内容了,只要我们按照步骤一步步操作就很容易就能进行重启服务器的操作了,上文介绍了三种重启服务器的方法,你可以选择你认为简单的一种方法,注意重启服务器前一定要把重要文件备份好。

一、设置tomcat定时启动

1,首先将tomcat注册为服务,先打开tomcat的bin目录下service.bat文件,修改下面的值,这是sevvice的注册名称和显示名称,一般可使用默认值。

set SERVICE_NAME=Tomcat7

set PR_DISPLAYNAME=Apache Tomcat

【然后修改jvm大小,搜索到--JvmMs 128 --JvmMx 256 进行修改,因为做成服务启动,启动的时候就不会用到 catalina.bat,也就不会读取里面的jvm设置了。】(可选,可以不设置)

然后运行cmd命令窗口,cd 到tomcat的bin目录下,运行下面的命令

service.bat install 运行成功过后,会提示服务已经安装成功。

2,制作重启脚本restart.bat,文件内容如下

net stop Tomcat7 net start Tomcat7

3,利用控制面板里面的“任务计划”设置第2步的脚本运行时间计划

4,如果想删除服务,也很简单,先把服务停掉,然后在cmd窗口运行下面的命令即可,后面那个Tomcat7是服务名。

sc delete Tomcat7

需要注意的是,需要先把服务停掉,才能一次删除成功,或者删除之后再停止服务,就会发现服务已经删除成功了。

二、监听tomcat

只要运行start.bat即可,相关配置在config.properties文件中,默认即可, 如果服务名不对应就修改关闭和启动命令的服务名即可:net start 【Tomcat7】括号中服务名,然后运行start.bat

下面是具体的监听代码:

首先是监听类TomcatMonitor .java:

[java] view plain copy

import java.io.BufferedReader

import java.io.IOException

import java.io.InputStream

import java.io.InputStreamReader

import java.net.MalformedURLException

import java.net.URL

import java.net.URLConnection

import java.util.Properties

/**

* @describe:TomcatMonitor.java

*

* @date 2016-7-4

* @author liuweilong

*/

public class TomcatMonitor implements Runnable{

String start=""//系统命令 启动

String stop=""//系统命令 关闭

String testHttp="" //测试连接地址

int testIntervalTime=1//测试连接间隔时间,单位为秒

int waitIntervalTime=2//等待测试间隔时间,单位为秒

int testTotalCount=5//测试连接总次数

Thread thread=null

public TomcatMonitor(){

InputStream in = TomcatMonitor.class.getResourceAsStream("config.properties")

Properties p = new Properties()

try {

p.load(in)

stop=p.getProperty("stop")

start=p.getProperty("start")

testHttp=p.getProperty("testHttp")

testIntervalTime=Integer.parseInt(p.getProperty("testIntervalTime"))

waitIntervalTime=Integer.parseInt(p.getProperty("waitIntervalTime"))

testTotalCount=Integer.parseInt(p.getProperty("testTotalCount"))

} catch (Exception e) {

e.printStackTrace()

}

System.out.println("*******************初始化成功!*******************")

thread=new Thread(this)

thread.start()

}

public void run() {

System.out.println("正在监控中...")

int testCount=0

while(true){

testCount=0

testCount++

boolean isrun=test()

System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"))

while(!isrun){

if(testCount>=testTotalCount)break

try {

thread.sleep(testIntervalTime*1000)

} catch (InterruptedException e) {

e.printStackTrace()

}

testCount++

System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"))

isrun=test()

}

if(!isrun){

try{

//关闭tomcat服务

Process proc = Runtime.getRuntime().exec(stop)

thread.sleep(5000)

//启动tomcat服务

System.out.println("测试连接失败,正在重启tomcat")

Process p=Runtime.getRuntime().exec(start)

System.out.println("重启tomcat成功")

}catch(Exception e){

e.printStackTrace()

System.out.println("重启tomcat异常,请查看先关错误信息。。。。。")

}

}

try {

thread.sleep(waitIntervalTime*1000)

} catch (InterruptedException e) {

e.printStackTrace()

}

isrun=test()

}

}

public boolean test(){

URL url=null

try {

url = new URL(testHttp)

} catch (MalformedURLException e) {

e.printStackTrace()

}

try {

URLConnection urlConn=url.openConnection()

urlConn.setReadTimeout(15000)

BufferedReader reader = new BufferedReader(new InputStreamReader( urlConn.getInputStream())) //实例化输入流,并获取网页代码

String s

while ((s = reader.readLine()) != null) {

return true

}

} catch (Exception e) {

return false

}

return false

}

public static void main(String[] args) throws Exception{

TomcatMonitor tm=new TomcatMonitor()

}

}

然后是对应的配置文件config.properties:

[plain] view plain copy

#系统命令 启动

start=net start Tomcat7

#关闭

stop = net stop Tomcat7

#测试连接总次数

testTotalCount=3

#连接失败时,再次检测时间间隔,单位为秒

testIntervalTime=3

#连接超时时间,即多少秒tomcat没响应视为宕机,单位为秒

connectionTimeout=15

#tomcat启动时间,防止在tomcat尚未启动完成的时候,程序又去检验tomcat状态,造成尚未启动完成又重新启动,单位为秒

tomcatStartTime=600

#测试连接地址

testHttp=http://127.0.0.1:8080

#正常情况下,每次检测间隔时间,单位为秒

waitIntervalTime=30

最后是启动的start.bat:

[plain] view plain copy

java -cp . TomcatMonitor


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/669747.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-27
下一篇2023-07-27

发表评论

登录后才能评论

评论列表(0条)

    保存