如何从命令行通过curl为任何特定的nagios主机设置一定时间的停机时间?

2024-01-03

我需要通过curl 从命令行为特定nagios 主机设置计划停机时间..我该怎么做?

这是我已经用于从命令行启用/禁用服务/主机通知的东西。

curl -d "some input here" url "user:pass" 

就像我需要为计划停机时间做的事情一样。现在的问题是停机时间选项需要更多选项,即开始时间、结束时间、评论等。

那么如何从命令行通过curl 来完成它呢?

curl -d " some key value pair(hostname,servicename" url "username:passowrd"

这将从命令行打开和关闭服务/主机通知。所以我想以这种方式使用curl 来为特定的nagios 服务器提供停机时间。

上面的脚本不起作用,因为 nagios 的停机选项需要更多参数,我尝试将这些参数注入脚本中..但它没有那样工作。我们还需要提供开始时间、结束时间和注释值。

另外,我已经尝试了curl的名为--form和--form-string的选项与该脚本..无法通过。

基本思想是我们不想进入 Nagios Web 界面,而是从命令行完成这件事(我们已经成功实现了服务/主机服务和通知)。

希望我现在已经完全清楚了。

TIA

Bhaskar


我增强了 Anders 的答案,以提供完整的脚本,并且不需要使用支持 --data-urlencode 的较新的curl。这还会自动计算发送的结束时间并检查请求是否已成功提交给 Nagios。此外,这还会安排主机和主机上所有服务的停机时间。

#!/bin/bash

function die {
  echo $1;
  exit 1;
}

echo Scheduling downtime on nagios

HOST=monitoredhost
NAGURL=https://nagios.example.com/cgi-bin/nagios3/cmd.cgi
USER=nagiosuser
PASS=nagiospassword
MINUTES=10

export MINUTES

# The following is urlencoded already
STARTDATE=`date "+%Y-%m-%d+%H%%3A%M%%3A%S"`
# This gives us the date/time X minutes from now
ENDDATE=`date "+%Y-%m-%d+%H%%3A%M%%3A%S" -d "$MINUTES min"`
curl --silent --show-error \
    --data cmd_typ=86 \
    --data cmd_mod=2 \
    --data host=$HOST \
    --data "com_data=Updating+application" \
    --data trigger=0 \
    --data "start_time=$STARTDATE" \
    --data "end_time=$ENDDATE" \
    --data fixed=1 \
    --data hours=2 \
    --data minutes=0 \
    --data btnSubmit=Commit \
    --insecure \
    $NAGURL -u "$USER:$PASS" | grep -q "Your command request was successfully submitted to Nagios for processing." || die "Failed to contact nagios";

echo Scheduled downtime on nagios
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从命令行通过curl为任何特定的nagios主机设置一定时间的停机时间? 的相关文章

  • Php Curl HTTP POST REQUEST 使用嵌套键值对设置自定义标头

    如何使用 Curl 在 php 中设置此标头 CustomInfo 元素是数组 嵌套键值对 AuthenticationInfo 元素是数组 嵌套键值对
  • PHP cURL 看不到 /etc/hosts 文件

    我在让 PHP cURL 库识别我在我的文件中创建的别名时遇到了麻烦 etc hosts file 这就是我的 etc hosts现在归档 192 168 0 20 www example dev 在另一端 192 168 0 20 Apa
  • 使用带有 HTTPS 证书的 System.Net.WebClient

    在我的 C Windows 客户端中 我向 母舰 进行了 POST 提交 当然 我希望提交的数据受到保护 因此我付费让 HostGator 向我颁发 SSL 证书 我保存了 CER 文件 并且正在构建请求 如下所示 wrapper for
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 使用 cURL 解释 PHP 中的令牌返回

    我无法解释从该服务器获得的响应 当用户尝试访问我的服务器上的页面时 此 PHP 首先运行以查看它们是否具有有效的令牌 通过我未在此处显示的上一个登录页面 ch curl init searchURL http example com isT
  • Curl 请求中的字符发生变化

    当我查看使用以下代码获得的 XML 数据源时 XML 代码中的特殊字符是正确的 然而 当 Curl 返回数据时 像 和 这样的字符会被转换为 resp 和 这种转换发生在所有特殊字符上 这两个只是一个例子 myvar curl init m
  • 无法解码 JSON 对象 - tastypie -curl

    我逐字逐句地遵循 tastypie 教程 直到到达帖子部分 http django tastypie readthedocs org en latest interacting html creating a new resource po
  • php、curl、标题和内容类型

    我在处理服务器返回的curl 和标头时遇到一些问题 1 my website com index php 上的 php 文件如下所示 修剪版本 my content
  • 如何使用 jquery 在 ajax 调用中设置标头

    我需要从我自己的应用程序调用 Office 365 Rest API 当我在同一浏览器会话上复制并粘贴 url 时 我可以看到一些 XML 如果我将该 URL 粘贴到隐身窗口中 则会收到以下错误 The custom error modul
  • PHP:CURL 可以遵循元重定向吗

    CURL 可以使用 CURLOPT FOLLOWLOCATION 遵循标头重定向 但是否可以遵循元刷新重定向 Thanks 是的 但您必须自己解析响应并查找类似以下内容 Obeying 刷新请求是浏览器端的事情 使用DOM解析来查找cURL
  • HTTPS 和 SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA 正常

    我在用XAMPP http www apachefriends org为发展 最近我将 xampp 的安装从旧版本升级到 1 7 3 现在 当我卷曲启用 HTTPS 的网站时 出现以下异常 致命错误 未捕获异常 RequestCore Ex
  • Android Multipart HTTP Post 不发送文件的 MIME 类型

    试图找出我的编码有什么问题 我关注了一篇博客文章here http evgenyg wordpress com 2010 05 01 uploading files multipart post apache 我设法获得了将文件实际上传到
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • HttpHostConnectException:连接被拒绝 Android

    我正在尝试通过 HttpPost 连接并将用户名和密码发送到网站 然后从该网站接收字符串 我过去尝试过各种对我有用的方法 但现在当我发送用户名和密码标识符时 应用程序超时长达 4 分钟 然后抛出以下异常 07 16 16 32 32 897
  • 无法添加 laravel/homestead 盒子。 “SSL 证书问题..”。视窗

    我已经在另外两台机器上安装了 laravel homestead 以前从未见过这个问题 我搜索了又搜索 实施了大量建议的修复方案 但没有任何效果对我有用 我已经安装了 virtual box 和 vagrant 但我陷入了第一个障碍 vag
  • 如何使用Multipart将图像上传到php服务器

    我一直很头疼 如何将图像上传到服务器 这对我来说是新任务 但对我来说很困惑 我在 stackoverflow 上搜索并用谷歌搜索 但我遇到了问题 我的意图是从 SD 卡上传照片并从相机拍照并上传到服务器 在ios中 这个任务已经完成 在io
  • 如何将单引号转义为双引号转义为单引号

    以下是符合此描述的命令行示例 curl http dumbdomain com solr collection2 update json H Content type application json d add doc uid 79729
  • 无法使用 jolokia 从 Kafka 提取 JMX 数据

    我已经在 centos 7 机器上安装了 Jolokia 并尝试使用 Jolokia 代理提取 Kafka 指标 并使用 Nagios 插件 check jmx4perl 与 Icinga 监控工具集成 以下是我遵循的配置步骤 步骤1 下载
  • 无法查看神经节仪表板

    我已经使用 rpm 文件进行了 ganglia 设置 OS centOS 6 3 Server httpd gmond 和 gmetad 正在运行 当我在浏览器中加载它时收到 禁止错误 Forbidden You don t have pe

随机推荐