关于服务器定时重启并利用批处理加载相关服务的完整方案
2012-04-03 19:13
281 查看
本文原创地址:/article/2814414.html
我们经常因为各种原因,需要对服务器进行重启。有时我们会遇到要将某些程序在服务器重启后再加载自动运行,但它们的运行又需要等待服务器重启完成之后一段时间方可加载。一个典型的例子是:我们希望某个程序(比如:某Tomcat程序)由服务器重启后自动运行,但该程序又需要使用SQL SERVER数据库,而数据库的启动是在服务器启动一段时间后才能完成。现在的问题是:如果我们在服务器启动后马上运行该程序时,数据库还根本没有启动起来!
如何解决这种问题呢?
1、服务器的定时重启
重启的办法很多,有使用shutdown.exe的,有使用iisreset的。
比如:
(1)使用以下代码可以将重启服务每周一、二、三、四、五、六、日早上5点30分加载运行:
at 5:30 /every:M,T,W,Th,F,S,Su shutdown.exe /r
完整代码:
@echo off
echo ┌────────────────────────┐
echo │Windows服务器定时重启
echo │------------------------------------------------│
echo │平台:w2k/w2k3测试通过
echo └────────────────────────┘
echo 正在设置……
at 5:30 /every:M,T,W,Th,F,S,Su shutdown.exe /r
echo 设置完成,请按任意键退出……
pause>nul
(2)还可以使用下面关键代码:
c:\windows\system32\iisreset.exe /reboot
在任务计划中加上相关任务即可,这都不是什么大问题。
2、服务器启动后加载的服务或运行程序
以下阐述的是如何加载某些需要在服务器启动后自动启用的服务或应用程序的问题,比如:我们可能需要在SQL SERVER启动后才能再运行我们的一些程序。这时,采用普通的办法就不灵了。
下面代码中的几个程序(分别是Sender.cmd,[b]startWebLogic.cmd,[b]startPublished.bat,[b]mp-import.bat[/b][/b][/b]),都是需要依次启用的,由于程序的启用需要时间,所以,分别使用了不同的时间间隔来启动它们。
其中,Sender.cmd的运行依赖于数据库的正常运行,所以,在此之前使用了[b]ping -n 150 -w 500 0.0.0.1>nul[/b]的关键代码以做延时之用。
以下为完整的代码(c:\autorun.bat):
rem ----------------代码开始------------------
rem @echo off
ping -n 150 -w 500 0.0.0.1>nul
d:
cd\transa\Transa-Sender
start "" "d:\transa\Transa-Sender\Sender.cmd"
ping -n 8 -w 500 0.0.0.1>nul
d:
cd\beac\epaper
start "" "d:\beac\epaper\startWebLogic.cmd"
ping -n 10 -w 500 0.0.0.1>nul
d:
cd\publishedold
start "" "d:\publishedold\startPublished.bat"
ping -n 6 -w 500 0.0.0.1>nul
d:
cd\beac\epaper\applications\mp\import2mp
start "" "d:\beac\epaper\applications\mp\import2mp\mp-import.bat"
rem --代码结束--
上面“c:\autorun.bat”的相关内容根据你自己的需要进行编写,完成后请在定时任务计划中加载,并选择服务器启动时运行。
有人在想:为什么还需要d:,cd\transa\Transa-Sender等命令行,而不直接使用start "" "d:\transa\Transa-Sender\Sender.cmd"呢?原因是,Sender.cmd里面还有关于路径的相关命令,如果不在其当前目录下运行,某些程序就无法正常使用。
关于ping -n 150 -w 500 0.0.0.1>nul这种延时方法,你可以百度搜索一下,此处不讲解了。
3、总结
使用定时任务计划与shutdown.exe、iisreset/reboot完成服务器定时重启,同时服务器启动时加载批处理程序(如上述c:\autorun.bat),该处理程序中使用“ping -n 延时时间 ……”等作延时处理,再使用start "" "完整的程序路径名称"加载运行的相关程序或服务。
我们经常因为各种原因,需要对服务器进行重启。有时我们会遇到要将某些程序在服务器重启后再加载自动运行,但它们的运行又需要等待服务器重启完成之后一段时间方可加载。一个典型的例子是:我们希望某个程序(比如:某Tomcat程序)由服务器重启后自动运行,但该程序又需要使用SQL SERVER数据库,而数据库的启动是在服务器启动一段时间后才能完成。现在的问题是:如果我们在服务器启动后马上运行该程序时,数据库还根本没有启动起来!
如何解决这种问题呢?
1、服务器的定时重启
重启的办法很多,有使用shutdown.exe的,有使用iisreset的。
比如:
(1)使用以下代码可以将重启服务每周一、二、三、四、五、六、日早上5点30分加载运行:
at 5:30 /every:M,T,W,Th,F,S,Su shutdown.exe /r
完整代码:
@echo off
echo ┌────────────────────────┐
echo │Windows服务器定时重启
echo │------------------------------------------------│
echo │平台:w2k/w2k3测试通过
echo └────────────────────────┘
echo 正在设置……
at 5:30 /every:M,T,W,Th,F,S,Su shutdown.exe /r
echo 设置完成,请按任意键退出……
pause>nul
(2)还可以使用下面关键代码:
c:\windows\system32\iisreset.exe /reboot
在任务计划中加上相关任务即可,这都不是什么大问题。
2、服务器启动后加载的服务或运行程序
以下阐述的是如何加载某些需要在服务器启动后自动启用的服务或应用程序的问题,比如:我们可能需要在SQL SERVER启动后才能再运行我们的一些程序。这时,采用普通的办法就不灵了。
下面代码中的几个程序(分别是Sender.cmd,[b]startWebLogic.cmd,[b]startPublished.bat,[b]mp-import.bat[/b][/b][/b]),都是需要依次启用的,由于程序的启用需要时间,所以,分别使用了不同的时间间隔来启动它们。
其中,Sender.cmd的运行依赖于数据库的正常运行,所以,在此之前使用了[b]ping -n 150 -w 500 0.0.0.1>nul[/b]的关键代码以做延时之用。
以下为完整的代码(c:\autorun.bat):
rem ----------------代码开始------------------
rem @echo off
ping -n 150 -w 500 0.0.0.1>nul
d:
cd\transa\Transa-Sender
start "" "d:\transa\Transa-Sender\Sender.cmd"
ping -n 8 -w 500 0.0.0.1>nul
d:
cd\beac\epaper
start "" "d:\beac\epaper\startWebLogic.cmd"
ping -n 10 -w 500 0.0.0.1>nul
d:
cd\publishedold
start "" "d:\publishedold\startPublished.bat"
ping -n 6 -w 500 0.0.0.1>nul
d:
cd\beac\epaper\applications\mp\import2mp
start "" "d:\beac\epaper\applications\mp\import2mp\mp-import.bat"
rem --代码结束--
上面“c:\autorun.bat”的相关内容根据你自己的需要进行编写,完成后请在定时任务计划中加载,并选择服务器启动时运行。
有人在想:为什么还需要d:,cd\transa\Transa-Sender等命令行,而不直接使用start "" "d:\transa\Transa-Sender\Sender.cmd"呢?原因是,Sender.cmd里面还有关于路径的相关命令,如果不在其当前目录下运行,某些程序就无法正常使用。
关于ping -n 150 -w 500 0.0.0.1>nul这种延时方法,你可以百度搜索一下,此处不讲解了。
3、总结
使用定时任务计划与shutdown.exe、iisreset/reboot完成服务器定时重启,同时服务器启动时加载批处理程序(如上述c:\autorun.bat),该处理程序中使用“ping -n 延时时间 ……”等作延时处理,再使用start "" "完整的程序路径名称"加载运行的相关程序或服务。
相关文章推荐
- 关于服务器定时重启并利用批处理加载相关服务的完整方案
- 利用任务计划定时重启服务器
- 每晚定时重启IIS和数据库服务可节省服务器资源
- 利用rsync服务定时同步tomcat日志
- linux作为服务器,利用top命令查看服务进程的耗用情况
- Android关于分包方案、插件化动态加载APK或DEX 以及热补丁资料总结
- Android中关于Volley的使用(四)利用NetworkImageView来加载图片
- 定时重启机器,重启时运行启动服务脚本
- service 2008 每次重启服务器,oracle的监听服务都不好用,需要把进程全部杀掉再重启监听
- windows下关于使用eclipse开发web服务器后台项目完整配置(jsp+javabean+servlet)
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
- 关于在IBM httpserver服务中添加报表服务器的说明
- 如何使win2003服务器自动定时重启的图文教程
- 关于搭建HTTPS服务器服务
- win 系统设置weblogic 进行定时自动重启并删除其日志和缓存文件,定时监控cpu是否达到100%并重启weblogic服务
- 利用win服务定时为网卡启用/禁用
- 服务器重启服务
- zabbix 关于监控windows 服务器的自定义服务的CPU 和内存占用 探索
- 利用keepalived实现nginx和php-fpm 两台服务器中的服务互为主从
- 服务器重启之后,MySql服务访问不到(Mysql5.6) 错误:1067