定时重启机器,重启时运行启动服务脚本
2017-03-14 00:00
453 查看
Linux操作系统定时重启机器,机器启动时运行启动服务脚本的操作步骤:
首先,执行crontab -e命令,创建并打开一个cron表,在表中添加类似如下信息:
#重启服务的脚本 30 2 * * * /sbin/reboot上面的意思:每天凌晨2:30重启机器
cron表格使用特殊格式指定作业运行时间。cron表格的格式如下:
min hour dayofmonth month dayofweek command
cron表格可以将条目指定为具体的值、一定范围的值(如 1-5)或通配符(*)。例如,如果希望每天10:15运行命令,可以使用以下corn表格项:15 10 * * * command。
dayofweek项可以是3字符的文本值(mon、tue、wed、thu、fri、sat、sun),也可以是数字:0标识星期天,6表示星期六。
dayofmonth项指定每个月的日期值(1-31)。
PS:因为每个月份不同,所以如何设置一个命令在每个月的最后一天执行呢?一种常用的方法是添加:if-then语句,该语句使用date命令检查明天是否是1号:
00 12 * * * if [ `date +%d -d tomorrow` =01 ] ; then ; command
通过if判断明天是否为01,如果是则执行命令。这将在每天的12点查看本日是否是该月的最后一天,如果是,它将运行命令。
命令列表必须制定要运行的命令或shell脚本的完整路径名。可以根据需要添加任何命令行参数或者重定向符号。
cron程序使用提交作业的用户账户运行脚本。因此必须拥有相应的权限才能访问命令行列表中的指定的命令和输出文件。
其次,编写shell脚本,我编写的shell脚本如下:
#!/usr/bin/env bash #hadoop的sbin路径 Hadoop=/usr/local/hadoop/sbin #hbase的bin路径 Hbase=/usr/local/hbase/bin #zookeeper的bin路径 Zk=/usr/local/zookeeper/bin #重启机器 #reboot #关闭服务并重启 cd $Zk #关闭zk服务 stopZK=`./zkServer.sh stop` startZK=`./zkServer.sh start` statusZK=`./zkServer.sh status` echo $stopZK > /dev/null if echo $startZK | grep "STARTED" then if echo $status | grep "Mode" then if jps | grep "QuorumPeerMain" then echo `date` "zk server start Succeed!">>/usr/local/reboot.log fi else for pid in `jps | grep "QuorumPeerMain"` do #如果启动pid不为空且pid不为零 if [ -n "$pid" ] && [ "$pid" != "QuorumPeerMain" ] then #关闭该进程 kill -9 $pid #关闭zkServer stopZK=`./zkServer.sh stop` echo $stopZK >/dev/null #运行zkServer.sh命令启动zk服务 startZk=`./zkServer.sh start` if echo $startZk | grep "STARTED" then #查看服务状态 statusZK=`./z kServer.sh status` if echo $ statusZK | grep "Mode" then QuoPM=`jps | grep "QuorumPeerMain"` if [ -n "$QuoPM" ] then echo `date` "zookeeper restart Succeed!">>/usr/local/reboot.log fi fi fi fi done fi fi cd $Hadoop #启动hadoop服务 startHadoop=`./start-all.sh` if [ -n "$startHadoop" ] then echo `date` "hadoop start Succeed!">>/usr/local/reboot.log fi echo $ #关闭history与proxy服务 StopHistory=`./mr-jobhistory-daemon.sh stop historyserver` StopProxy=`./yarn-daemon.sh stop proxyserver` #启动history与proxy服务 StartHistory=`./mr-jobhistory-daemon.sh start historyserver` StartProxy=`./yarn-daemon.sh start proxyserver` if [ -n "$StartHistory" ] && [ -n "$StartProxy" ] then echo `date` "historyserver and proxyserver restart Succeed!">>/usr/local/reboot.log fi cd $Hbase #关闭hbase服务 StopHbase=`./stop-hbase.sh` #启动hbase服务 StartHbase=`./start-hbase.sh` if [ -n "$StartHbase" ] then echo `date` "hbase restart Succeed!" >>/usr/local/reboot.log fi调试脚本,看脚本是否成功,如果运行成功,说明脚本编写完成!
最后,设置开机自启脚,在/etc/init.d/rc.local文件中添加类似如下的命令:
. /usr/local/Reboot相关文章推荐
- 定时重启机器,重启时运行启动服务脚本
- 定时重启机器,重启时运行启动服务脚本
- shell脚本:定时重启tomcat服务
- 将程序设置为服务,在系统登录界面自动启动(解决:不间断运行的程序遇到电脑重启,且电脑登录需要账号和密码)
- Linux下Redis启动/关闭/重启服务脚本
- container在运行的时候重启 docker 服务, 可能会导致 container无法启动
- 写一个脚本用来监控服务的运行状态并能够重启服务
- oracle job 定时,启动,停止,察看状态。运行脚本
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
- Linux之shell脚本系列 ----- 服务启动/关闭/重启/状态
- linux下开机自动启动,定时运行shell脚本
- 网络连接’文件夹不能检索在您的机器上的网络适配器。请确认‘网络连接’服务启动并且在运行
- *Nix下定时启动并重启程序的脚本
- tomcat服务 启动/停止/重启脚本 推荐
- Linux下Redis启动/关闭/重启服务脚本
- 安装hbase后重启服务,发现zookeeper在某台机器上无法正常启动
- Linux下Redis启动/关闭/重启服务脚本
- 除了/etc/init.d/加启动脚本 或者在/etc/rc.local中加启动命令,还可以通过crontab来完成服务器重启后自动启动服务的操作
- Linux下Redis启动/关闭/重启服务脚本