飞腾平台使用crontab实现定时任务

场景介绍

在第一次为15所进行设备展示的时候,由于自己也是被临时通知,时间很紧张,我和同事几个为保障这个测试,周日那天也去加班,这才发现自己的事前的估计过于乐观了,我也第一时间组织了覆盘。
覆盘15所展示过程
在这次展示中,资源智能设备还是给了我挺大的反思和感触的,之前和领导说没什么问题的,结果发现问题暴露了那么多。而且还因为空间不足使用fdisk进行硬盘挂载指南,把达梦数据库的DAMENG01.log、DAMENG02.log,可以说在设备出所之前自己的这波无心的操作之后就导致了我和同事熬夜到凌晨才在金蝶同事的帮助下解决了这个问题。
这让自己明白了开发过程中几个问题:

之后要定期发布版本,并且进行完整性测试。而不要单项测试。
2. 开发的流程很重要,不管是版本发布、测试或者禅道Bug解决都是一样的,只有保持节奏才能改进表现。
3. 产品的质量是管理得来的,而不是开发得来的。

由于当前资源智能设备中几个模块的不稳定,也由于这次设备展示给自己带来的打击太大,因此自己也就意识到了维护服务模块状态的重要性了。
当前感知软件主要由如下的模块组成:

  • 服务管理
  • 检索平台
  • es
  • 应用管理
  • node
  • nginx
    为了保证多个模块的正常运行,也因为时间来不及,因此当设备回到所里之后,自己就花了两天的时间完成了对服务模块状态的维护,通过脚本来定时查看状态,其实,在这时候

脚本相当于监控节点。

自己实现的主干流程是通过crontab命令来实现的。因为crontab可以用来实现某些任务的定时执行

crontab

crontab :crontab 这个指令所设定的工作将会循环的一直进行下去! 可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外,亦可编辑 /etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服务喔。

循环执行的例行性工作排程则是由 cron (crond) 这个系统服务来控制的

在这里插入图片描述

crontab语法

在这里插入图片描述
对上述命令进行简单的阐述:

  • crontab -e会进入vi编辑模式,在末尾可以添加一行,而每一行则表示一个定时任务,具体的定时规则符合cron语法。稍后介绍。
  • crontab -l会列出指定用户设置的例程性任务。
  • crontab -r 移除用户的所有定时任务,如果要移除某一个任务,则可以通过crontab -e的方式编辑某一行即可。一般删除定时任务时,会添加-i选项进行删除前的提示。

语法

f1 f2 f3 f4 f5 program
  • 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推

* * * * *
| | | | |
| | | | ±---- 星期中星期几 (0 - 7) (星期天 为0)
| | | ±--------- 月份 (1 - 12)
| | ±-------------- 一个月中的第几天 (1 - 31)
| ±------------------- 小时 (0 - 23)
±------------------------ 分钟 (0 - 59)
使用者也可以将所有的设定先存放在文件中,用 crontab file 的方式来设定执行时间。

在cron中可以出现特殊符号,具体含义可以参考下图:
在这里插入图片描述

定时设置

通过crontab -e设置了类似如下的一行控制代码:
在这里插入图片描述

定时执行脚本

基本设置是这样的,上述crontab控制了脚本执行的频路,而脚本则进行端口查看进程是否存在,当然这只是一种简单的维护,因为有可能虽然端口存在但进程已经处于死亡状态了,但现在暂时不考虑这么多,而只检测端口的存在
基本上用到的核心命令为netstatlinux服务器端口netstat
等之后把脚本内容填写到这里吧。
而且在飞腾平台上,crontab创建的定时任务在开机之后仍然可以自动启动,这无疑对于我保障系统的运行状态有很好的帮助作用。

配置文件

在这里插入图片描述
注意:鸟哥私房菜中,曾经提到过如下的Tips
在这里插入图片描述

最后把鸟哥对于crontab的总结放在下面:
在这里插入图片描述

总结

 在周六下雨的今天,坐在书桌前完成了对于文章的总结吧,而且脚本确实也发挥了它的作用,在设备寄回所里之后,自己就花了大概两天的时间完成定时脚本schedule_task.sh的撰写、campstat、campstop和portpid的编写,这大大的方便了我们几个在linux上操作的简易程度,而且设备寄回不久就要再次展示军种军衔的任务,借助定时任务、命令脚本,我和同事在环境测试中顺利的开关机三次保障了服务的正常运行。效果很明显,因为第一次找一个完全不懂linux的人来支撑自己通过打电话、远程视频、微信的方式真的太累了,真的太累了。
 在此,还要感谢这个春节自己在老家,通过平板完成的对于2019全新的Shell从入门到精通,这对于自己编写脚本有了全新的体验。感恩自己的努力和勤奋吧。
 本文主要讲述了crontab的实践,大家可以去实操一下了。

			202041115:51:44于奥克斯·时代未来之城
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章