批量设置nagios的计划停机-创新互联

当我们要设置nagios监控下的所有服务和主机的计划停机时间时,如果一个个的手动点击web界面的“Schedule downtime for this host”和“Schedule downtime for all services on this host”会相当痛苦,那么有什么办法可以一次搞定呢?我们可以把请求发给nagios.cmd,nagios读取nagios.cmd文件,自动完成计划停机的设置
#!/bin/bash
EchoCmd="/bin/echo"
CommandFile="/usr/local/nagios/var/rw/nagios.cmd"

创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务内乡,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

# get the current date/time in seconds since UNIX epoch
TodayTime=`date +%Y-%m-%d`
Tomorrow=`date +%Y-%m-%d --date='1 day'`
NowTime=`date +%s`
BeginTime=`date -d "$TodayTime 20:30:00" +%s`   //计划停机时间今天20:30到第二天的08:00
EndTime=`date -d "$Tomorrow 08:00:00" +%s`
Comment_Author=nagiosadmin
Comment_Data=xitongweihu_`date +%Y%m%d`
hostgroup=/data/backup/group.ini //该文件保存计划停机的主机组名称
for X in $(cat $hostgroup)
   do
# create the command line to add to the command file //该项设置主机组下的所有主机计划停机
 CmdHostGroup="[$NowTime] SCHEDULE_HOSTGROUP_HOST_DOWNTIME;$X;$BeginTime;$EndTime;1;0;3600;$Comment_Author;$Comment_Data"
# append the command to the end of the command file
 `$EchoCmd $CmdHostGroup >> $CommandFile`

# create the command line to add to the command file   //该项设置主机组下的所有服务计划停机
 CmdServiceGroup="[$NowTime] SCHEDULE_HOSTGROUP_SVC_DOWNTIME;$X;$BeginTime;$EndTime;1;0;3600;$Comment_Author;$Comment_Data"
# append the command to the end of the command file
 `$EchoCmd $CmdServiceGroup >> $CommandFile`
done

备注:可以通过打开nagios.cfg里的日志级别,查看通过web界面执行的命令详细过程

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:批量设置nagios的计划停机-创新互联
文章起源:http://pwwzsj.com/article/poeoj.html