#!/bin/sh # 2001-09-06 Rafael Skodlar # Create DHCP entries in /etc/dhcpd.conf DATE=`date '+%Y-%m-%d'` DHCP_CONF=/etc/dhcpd.conf DOMAIN="mydomain.com" NISDOMAIN="mydomain.com" NTPSRV="ntp.mydomain.com" NISSRV="archer.mydomain.com" LPRSRV="web.mydomain.com" BROADCAST="192.168.10.255" DNSSRV="192.168.0.2,192.168.0.31" WINS=192.168.0.19 ROUTERS="192.168.0.1" SUBNET1="192.168.0.0" NETMASK="255.255.255.0" RANGE1="192.168.0.248 192.168.0.249" ARPTABLE=$HOME/config/hosts.dhcpd DEFAULT_LEASE=86400 MAX_LEASE=604800 cp $DHCP_CONF $DHCP_CONF.$DATE function backup() { cd /var/named tar cfp * backup/named_${DATE}.tar } function usage() { clear cat << EOM ---------------------------------------------------------------------- 1. Edit DNS tables 2. Edit $ARPTABLE 3. Restart DNS 4. Create $DHCP_CONF 5. Restart DHCP Server 6. Usage 7. Exit ---------------------------------------------------------------------- EOM } function makedhcp() { cat << EOM > $DHCP_CONF # DHCP Configuration File # $DATE Created by script $0 option nis-servers $NISSRV; option nis-domain "$NISDOMAIN"; option domain-name-servers $DNSSRV; subnet $SUBNET1 netmask $NETMASK { option time-servers $NTPSRV; option domain-name-servers $DNSSRV; option routers $ROUTERS; option ntp-servers $NTPSRV; option lpr-servers $LPRSRV; option domain-name "$DOMAIN"; option netbios-name-servers $WINS; next-server images; filename "/export/tftp/vmlinuz"; # range $RANGE1; default-lease-time $DEFAULT_LEASE; max-lease-time $MAX_LEASE; EOM i=0 while read arpinfo do let i=i+1 MAC=`echo $arpinfo | awk '{print $1}'` IP=`echo $arpinfo | awk '{print $2}'` HOST=`dig -x $IP | awk '/1D IN PTR/{print $5}' | sed 's/\.$//g'` # echo "$i ===> $IP $HOST" cat << EOM >> $DHCP_CONF host $HOST { hardware ethernet $MAC; fixed-address $IP; } EOM done < $ARPTABLE echo "}" >> $DHCP_CONF echo "#EOF" >> $DHCP_CONF cat << EOM ========================================= Processed $i hosts ========================================= EOM } menu () { PS3='Select? ' select action in DNS-Edit DHCP-Edit DNS-Restart DHCP-Create DHCP-Restart Usage E xit; do usage [ "$action" = "DNS-Edit" ] && /root/bin/vidns [ "$action" = "DNS-Restart" ] && (/etc/rc3.d/S55named restart) [ "$action" = "DHCP-Edit" ] && vi $ARPTABLE [ "$action" = "DHCP-Create" ] && makedhcp [ "$action" = "DHCP-Restart" ] && (/etc/rc3.d/S65dhcpd restart) [ "$action" = "Usage" ] && usage if [ "$action" = "Exit" ];then clear exit fi done } backup usage menu #EOS