首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用shell脚本超出了DHCP范围,如何发送警报?

如果使用shell脚本超出了DHCP范围,如何发送警报?
EN

Unix & Linux用户
提问于 2014-05-31 15:30:48
回答 1查看 1.5K关注 0票数 5

我已经在CentOS 6.5上安装和配置了一个DHCP服务器。我还向dhcpd.conf文件添加了一个子网,如下所示:

代码语言:javascript
复制
subnet 192.168.1.0 netmask 255.255.255.0 {
  option domain-name-servers 192.168.1.2, 8.8.8.8;
  default-lease-time 600;
  max-lease-time 7200;
  range dynamic-bootp 192.168.1.10 192.168.1.30;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;
  option ip-forwarding off;
}

如您所见,DHCP服务器只能分配20个IP地址。是否可以让DHCP服务器在使用shell脚本分配所有20个地址后向系统管理员发送警报?

EN

回答 1

Unix & Linux用户

发布于 2014-05-31 18:39:20

这不是一个直接的解决方案,但您似乎可以在您的DHCP配置文件中使用on commit工具。下面是本文中一个名为:在ISC DHCP发出新租约时执行脚本的例子。

dhcpd.conf文件中,您可以对各种事件创建操作,例如在批出租约时。

代码语言:javascript
复制
subnet 192.168.1.0 netmask 255.255.255.0 {
    option routers  192.168.1.2;

    on commit {
        set clip = binary-to-ascii(10, 8, ".", leased-address);
        set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
        execute("/usr/local/sbin/dhcpevent", "commit", clip, clhw, host-decl-name);
    }
    ...

当上面的脚本dhcpevent运行时,它传递了4个参数。

代码语言:javascript
复制
execute_statement argv[0] = /usr/local/sbin/dhcpevent
execute_statement argv[1] = commit
execute_statement argv[2] = 192.168.1.40
execute_statement argv[3] = 11:aa:bb:cc:dd:ee
execute_statement argv[4] = d1.jp

在本例中,clipw & clhw是在运行脚本之前分析和存储其他元数据的一部分的变量。然后将这些变量与其他项一起传递到事件脚本。

您可以将此方法协商到脚本中,在脚本中可以跟踪已租出的if的数量,或者可以查询DHCP服务器跟踪此信息(/var/lib/dhcpd/dhcpd.leases)的实际租约状态文件,然后报告该文件是否存在超过配额的多个租约。

参考资料

  • 神奇的dhcp素材- ISC动态主机配置协议
票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/132862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档