首页 > 其他分享 >推荐一个运维任务计划好帮手,让你的任务运行更可靠

推荐一个运维任务计划好帮手,让你的任务运行更可靠

时间:2022-10-17 10:23:51浏览次数:60  
标签:脚本 好帮手 运维 助手 任务 心跳 监测 执行

什么是监测助手?

我们先来看几个日常运维工作中常见的场景:

  • • 定时备份数据库或其他数据
  • • 写个脚本来监控进程确保进程存活
  • • 检测磁盘、内存等使用情况,异常时能及时告警通知
  • • 一些业务要执行的周期性任务

这些工作大都是放在crontab里让系统按指定规则自动执行,例如这样

0 3 * * * /data/tools/job.sh

但这样有个问题就是如果任务执行失败了,很难及时发现,并且可能很长一段时间都无人注意,直到引发了更大的问题。

那如何解决这个问题?这就是监测助手存在的意义,我们来略微改造下就可以实现,当任务执行异常时能够及时收到告警通知。


*/1 * * * * /data/tools/job.sh && curl --retry 3 -so /dev/null https://push.spug.cc/ping/EMxxxga

curl 参数解释
--retry 如果请求失败,则会最多重试多少次
-s 静默模式,隐藏进度及错误信息
-o 输出重定向

工作原理

上述例子使用了 && 即当脚本执行成功后会执行后边的curl命令向监测助手报告一下,证明自己还活着,这样执行的脚本就有了一个类似心跳检测的机制,如果监测助手在设置的时间内未收到心跳报告则认为出现了异常,就会触发告警通知。

快速入门

监测助手可以选择两种调度方式来接收心跳报告

  • • 间隔: 根据固定的间隔时间:例如每隔五分钟需要收到一次脚本上报,五分钟没收到就报警。
  • • Cron: 通过输入的Cron表达式计算期望收到的心跳报告时间:例如每天凌晨五点需要收到一次脚本上报,未收到就报警

这里还有个比较重要的概念: 延迟时间 心跳报告有时候可能会因为网络原因延迟上报了,通过设置延迟时间可以允许中间有一定时间的误差,以避免可能频繁出现的误报。

适用场景:

  • • 间隔:适合在脚本或者代码中使用,例如在脚本或者代码逻辑中加入请求监测助手心跳URL,监测助手在指定时间内没收到上报就报警
  • • Cron: 则非常适合与系统的 Crontab 结合使用,只需要让两者的表达式一致即可。假设我们有个需要每5分钟执行一次的任务用于处理业务中无效的订单数据,我们使用系统的 crontab 添加了一个这样的任务计划
*/5 * * * * /handle.sh

接下来,我们看看如何与监测助手结合使用。

1、推送助手官网 / 检测助手 / 创建监测项

注意!要保持与 Crontab 中表达式一致,这样才能确保监测助手计算出的心跳报告时间与系统任务计划执行的一致。

然后根据需要填写告警设置,保存后就生成了如下一条监测项。

2、复制生成的请求URL

3、最后,我们再改造下 crontab 中的内容

*/5 * * * * /handle.sh && curl --retry 3 -so /dev/null https://push.spug.cc/ping/1k3njZDv8M4D

好了,一切任务尽在掌控中~

标签:脚本,好帮手,运维,助手,任务,心跳,监测,执行
From: https://www.cnblogs.com/spug/p/16798195.html

相关文章

  • 质检任务单据表关系
     单据头Z_QM_TASKLLISTSELECTx.*,x.ROWIDFROMWIPDBA.Z_QM_TASKLLISTxWHERE(HANDLE='QmTaskLListBO:1130,SJ,11300303S221015033')AND(SHOP_ORDER_BOLIKE'......
  • js的宏任务和微任务有哪些,是怎么执行的 ?
    事件循环有宏任务和微任务;宏任务所处的队列就是宏任务队列,队列可以有多个,第一个队列只有一个任务就是执行主线程的js代码,剩余队列任务有setTimeoutsetInterval ;微任务......
  • Linux 下设置定时任务
    Linux下设置定时任务假定场景​ 每隔4个小时执行一个脚本,命令如下sh/usr/bin/login.sh>/tmp/login.log打开定时器编辑crontab-e添加如下内容0*/4***......
  • Linux性能运维–三个Python小工具
    由于工作需要,服务器每周需巡检一次。除了内存、cpu、磁盘、网络连接等数据外,还有不同的服务。为加快巡检速度和知晓服务器状况,我使用了multiprocessing.dummy多线程、pampy......
  • 进程和计划任务管理
    目录:1、程序和进程的关系2、查看当前终端3、top4、pgrep5、pstree6、lsof7、vmstat8、五大系统资源9、系统的启动方式10、crontab命令 程序和进程的关系程序......
  • 宏任务与微任务
    原文:做一些动图,学习一下EventLoop(https://juejin.cn/post/6969028296893792286)一、任务队列  JavaScript是单线程执行的语言,在同一时间只能干一件事情。如果前......
  • 【第五篇】Camunda系列-任务分配
    任务分配1.固定分配  在指派​​用户任务​​的审批人时。我们是直接指派的固定账号。但是为了保证流程设计审批的灵活性。我们需要各种不同的分配方式,所以这节我们就详细......
  • 基于 docker 快速部署自动化运维平台Spug
    基于docker快速部署自动化运维平台1-1、项目说明Spug面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传......
  • 华为云OBS,如何成为企业上云 “好帮手”
    随着时间的推移和经济的发展,海量数据已成为社会生产生活中不可分割的重要组成部分。与此同时,企业自身的数字化转型也面临着越来越多的挑战,其中,企业内部数据量大且分散、业务......
  • linux进程及计划任务管理
    程序和进程的关系1.程序保存在硬盘,光盘等介质中的可执行代码和数据文件中静态保存的代码2.进程在cpu及内存中运行的程序代码动态执行的代码父,子进程每个程序可以创......