Eu fiz este script de um dos antigos scripts que guardo.
#!/bin/bash
if [ "$EUID" -ne 0 ];
then echo "Please run as root (sudo)"
exit
fi
PATH_DHCP_FILE="./test.conf"
PATH_DHCP_TRUST_FILE="./trust_host"
PATH_STUDENTS_FILE="students.list"
PATH_DHCP_LEASES="/var/lib/dhcp/dhcpd.leases"
DATE='date '+%Y-%m-%d %H:%M''
IP_RANGE_DEFAULT='192.168.1.50 192.168.1.100'
NETMASK_DEFAULT='255.255.255.0'
AGREE_DEFAULT='yes'
echo ""
echo "|==========================================================|"
echo "|**********************************************************|"
echo "| DHCP CONF |"
echo "| Welcome to this configuration Script for DHCP Server. |"
echo "| |"
echo "|**********************************************************|"
echo "|==========================================================|"
echo ""
echo "CTRL-C to leave"
echo ""
read -p "WARNING. The file $PATH_DHCP_FILE will be edit. Do you want to continue ? [yes] " AGREE
AGREE=${AGREE:-$AGREE_DEFAULT}
if [ "$AGREE" != 'yes' ]
then echo "Stop script."
exit
fi
echo ""
echo "Please, fill the following informations (be care about the syntax)"
read -p "Network IP [192.168.1.0]: " IP
read -p "Netmask [255.255.255.0]: " NETMASK
read -p "IP Range [192.168.1.50 192.168.1.100]: " IP_RANGE
IP=${IP:-$IP_DEFAULT}
NETMASK=${NETMASK:-$NETMASK_DEFAULT}
IP_RANGE=${IP_RANGE:-$IP_RANGE_DEFAULT}
echo ""
echo "--DHCP Configuration--"
echo "----Append configuration to $PATH_DHCP_FILE----"
echo "
# ============================
# *DCHP Script configurations*
# ***$DATE***
subnet $IP netmask $NETMASK {
range $IP_RANGE;
deny unknown-clients;
}
include \"$PATH_DHCP_TRUST_FILE\";
# ============================
" >> $PATH_DHCP_FILE
echo ""
ADD_MAC_DEFAULT='yes'
echo "# ***$DATE***" >> $PATH_DHCP_TRUST_FILE
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
studenMac=$(echo $line| cut -d' ' -f 1)
student=$(echo $line| cut -d' ' -f 2)
echo "Studen mac : $studenMac"
echo "Studen host : $student"
echo "Add $student with $studenMac"
echo "host $student { hardware ethernet $studenMac; }" >> $PATH_DHCP_TRUST_FILE
done < "$PATH_STUDENTS_FILE"
Edite as variáveis PATH_DHCP_FILE, PATH_DHCP_TRUST_FILE e PATH_STUDENTS_FILE e conclua quando o script solicitar informações.
Existe o resultado no arquivo de teste do meu lado:
Para o arquivo test.conf (/etc/dhcpd.conf)
# ============================
# *DCHP Script configurations*
# ***2018-03-19 17:36***
subnet netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
deny unknown-clients;
}
include "./trust_host";
# ============================
E no arquivo trust_host:
# ***2018-03-19 18:44***
host Prajwal { hardware ethernet 94:92:66:38:a6:79; }
host Prajwal { hardware ethernet 30:e1:71:c9:1b:43; }
host Unique { hardware ethernet 94:65:2d:23:a8:4d; }
host Anup { hardware ethernet 84:8f:69:ca:15:00; }
host Anup { hardware ethernet 88:83:22:eb:1e:41; }
Cuidado, eu não cuido de duplicação.
Espero que isso ajude.