×

一、脚本逐行注释

主机:192.168.201.200

脚本 /root/gitlab_check.sh

 #!/bin/bash
 # 指定使用 bash 解释器执行脚本
 ​
 # 向第一个 GitLab 实例发起 GET 请求,获取项目列表
 # -s 参数表示 "silent",即不显示下载进度等额外信息
 result1=$(curl -s --request GET "http://gitlab.fz.akubela.local/api/v4/projects")
 ​
 # 向第二个 GitLab 实例发起 GET 请求
 result2=$(curl -s --request GET "http://192.168.13.5/api/v4/projects")
 ​
 # 拼接两个结果,作为要发送的文本内容
 message="GitLab Projects Results:
 1. Local GitLab: $result1
 2. 192.168.13.5: $result2"
 ​
 # 将文本内容包装成企业微信机器人需要的 JSON 格式
 # 格式要求:https://developer.work.weixin.qq.com/document/path/91770
 json="{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}"
 ​
 # 使用 curl 将 JSON 通过 POST 请求发送到企业微信机器人 webhook
 # -H "Content-Type: application/json" 表示告诉对方数据是 JSON
 # -d "$json" 表示请求体是我们准备好的 JSON 数据
 curl -s -H "Content-Type: application/json" \
      -d "$json" \
      "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=f2fe73ee-c56d-42c3-becf-474c956f12a0"

二、什么是 crontab?

  • cron:Linux/Unix 系统自带的任务调度服务,可以在指定时间自动执行任务。
  • crontab:cron 的配置文件,用来定义任务和时间规则。

你只要把脚本写好,然后通过 crontab -e 添加任务,系统就会按照你设定的时间自动执行。

查看当前用户的任务:

 crontab -l

三、crontab 时间格式

crontab 的一行格式:

 分 时 日 月 星期 命令

每一项说明:

  • :0–59
  • :0–23 (24小时制)
  • :1–31
  • :1–12
  • 星期:0–7 (0和7都表示星期天)
  • 命令:要执行的命令或脚本路径

例子:

  • 0 9 * * * /root/gitlab_check.sh → 每天上午 9:00 执行
  • 30 14 * * * /root/gitlab_check.sh → 每天 14:30(下午2:30) 执行
  • 0 */6 * * * /root/gitlab_check.sh每6小时执行一次(0点、6点、12点、18点)
  • */10 * * * * /root/gitlab_check.sh每10分钟执行一次

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

作者

fffff@xf.nn

文章推荐