Difference between revisions of "Dhcpd lease time"
From SME Server
Jump to navigationJump to search (Document custom-template method for customizing DHCPD lease times.) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Needs review}} | {{Needs review}} | ||
+ | |||
+ | == Display the dhcp lease== | ||
+ | |||
+ | according in [[bugzilla:2641]] you have a script which display in your terminal how many computers are connected their ip, mac adress and their expiration of dhcp leases. | ||
+ | |||
+ | nano dhcpd.lease | ||
+ | paste the content below then save the file | ||
+ | chmod +x dhcpd.lease | ||
+ | |||
+ | #!/bin/sh | ||
+ | # | ||
+ | # dhcpactiv.sh | ||
+ | # | ||
+ | # v.004 | ||
+ | # - rewritten again to pull data from dhcpd files according to labels instead of position | ||
+ | # | ||
+ | # v.003 | ||
+ | # - add code to remove tstp information from dpcpd.leases | ||
+ | # | ||
+ | # v.002 | ||
+ | # - rewritten to use awk more for parsing | ||
+ | # - added "GMT" indicator to Expiration col head | ||
+ | # | ||
+ | echo "Source Host MAC Address IP Address Expiration (GMT)" | ||
+ | echo "============= ========================= ================= =============== ================" | ||
+ | # | ||
+ | awk ' { out = ""} \ | ||
+ | { $1=="lease"||$1=="client-hostname" ? out=" " $2 : out=out } \ | ||
+ | { $1=="binding"||$1=="hardware" ? out= " " $3: out=out } \ | ||
+ | { $1=="ends"? out=" " $3 " " $4: out=out } \ | ||
+ | { $1=="}"? out="\n": out=out } \ | ||
+ | { printf out," " }' /var/lib/dhcpd/dhcpd.leases \ | ||
+ | | grep active \ | ||
+ | | sed -e s/'[{};" ]'/\ /g \ | ||
+ | | awk '{ printf "%-13s %-25s %-17s %-15s %-10s %-5s\n", "dhcpd.leases", $6, $5, $1, $2, $3 }' | ||
+ | |||
+ | # | ||
+ | # Now do the same for /etc/dhcpd.conf | ||
+ | # | ||
+ | awk ' { out = ""} | ||
+ | { $1=="host"||$1=="fixed-address" ? out=" " $2 : out=out } \ | ||
+ | { $1=="hardware" ? out= " " $3: out=out } \ | ||
+ | { $1=="}"? out="\n": out=out } \ | ||
+ | { printf out," " }' /etc/dhcpd.conf \ | ||
+ | | grep : \ | ||
+ | | sed -e s/'[{};\" ]'/\ /g -e s/\.`config get DomainName`// \ | ||
+ | | awk '{ printf "%-13s %-25s %-17s %-15s %-15s \n", "dhcpd.conf", $1, $2, $3, "reservation"}' | ||
+ | # | ||
+ | # Finally, grab the current arp table | ||
+ | # | ||
+ | arp -a \ | ||
+ | | sed -e s/\\..*\(/\ / -e s/\)// \ | ||
+ | | awk '{ printf "%-13s %-25s %-17s %-15s %-15s \n", "arp", $1, $4, $2, "n/a"}' | ||
+ | |||
+ | ==customize the lease duration== | ||
You can customize the lease duration for the dhcp server ('''dhcpd''') in SME using these instructions. | You can customize the lease duration for the dhcp server ('''dhcpd''') in SME using these instructions. | ||
− | |||
− | |||
The commands below will create custom template fragments for <tt>default-lease-time</tt> and <tt>max-lease-time</tt>, re-generate <tt>/etc/dhcpd.conf</tt>, and restart the '''dhcpd''' service in order to activate your changes. | The commands below will create custom template fragments for <tt>default-lease-time</tt> and <tt>max-lease-time</tt>, re-generate <tt>/etc/dhcpd.conf</tt>, and restart the '''dhcpd''' service in order to activate your changes. | ||
mkdir -p /etc/e-smith/templates-custom/etc/dhcpd.conf | mkdir -p /etc/e-smith/templates-custom/etc/dhcpd.conf |
Latest revision as of 09:38, 28 July 2015
Display the dhcp lease
according in bugzilla:2641 you have a script which display in your terminal how many computers are connected their ip, mac adress and their expiration of dhcp leases.
nano dhcpd.lease
paste the content below then save the file
chmod +x dhcpd.lease
#!/bin/sh # # dhcpactiv.sh # # v.004 # - rewritten again to pull data from dhcpd files according to labels instead of position # # v.003 # - add code to remove tstp information from dpcpd.leases # # v.002 # - rewritten to use awk more for parsing # - added "GMT" indicator to Expiration col head # echo "Source Host MAC Address IP Address Expiration (GMT)" echo "============= ========================= ================= =============== ================" # awk ' { out = ""} \ { $1=="lease"||$1=="client-hostname" ? out=" " $2 : out=out } \ { $1=="binding"||$1=="hardware" ? out= " " $3: out=out } \ { $1=="ends"? out=" " $3 " " $4: out=out } \ { $1=="}"? out="\n": out=out } \ { printf out," " }' /var/lib/dhcpd/dhcpd.leases \ | grep active \ | sed -e s/'[{};" ]'/\ /g \ | awk '{ printf "%-13s %-25s %-17s %-15s %-10s %-5s\n", "dhcpd.leases", $6, $5, $1, $2, $3 }' # # Now do the same for /etc/dhcpd.conf # awk ' { out = ""} { $1=="host"||$1=="fixed-address" ? out=" " $2 : out=out } \ { $1=="hardware" ? out= " " $3: out=out } \ { $1=="}"? out="\n": out=out } \ { printf out," " }' /etc/dhcpd.conf \ | grep : \ | sed -e s/'[{};\" ]'/\ /g -e s/\.`config get DomainName`// \ | awk '{ printf "%-13s %-25s %-17s %-15s %-15s \n", "dhcpd.conf", $1, $2, $3, "reservation"}' # # Finally, grab the current arp table # arp -a \ | sed -e s/\\..*\(/\ / -e s/\)// \ | awk '{ printf "%-13s %-25s %-17s %-15s %-15s \n", "arp", $1, $4, $2, "n/a"}'
customize the lease duration
You can customize the lease duration for the dhcp server (dhcpd) in SME using these instructions. The commands below will create custom template fragments for default-lease-time and max-lease-time, re-generate /etc/dhcpd.conf, and restart the dhcpd service in order to activate your changes.
mkdir -p /etc/e-smith/templates-custom/etc/dhcpd.conf cd /etc/e-smith/templates-custom/etc/dhcpd.conf echo " default-lease-time {21*86400};" > 25LeaseTimeDefault echo " max-lease-time {21*86400};" > 25LeaseTimeMax expand-template /etc/dhcpd.conf sv restart dhcpd
Notes
- Replace "21" with the desired number of days.
- The spaces in front of "default-lease-time" and "max-lease-time" are important!
- SME default 'default-lease-time' is 1 day (86400 seconds).
- SME default 'max-lease-time' is 7 days (7*86400 = 604800 seconds).
- The SME expand-template command performs the calculation inside the braces and puts the results into the output file without braces.
Verify your changes
Verify that your changes "stuck" by looking at the actual values in /etc/dhcpd.conf:
grep lease-time /etc/dhcpd.conf
The above sample, using {21*86400}, produces the following in /etc/dhcpd.conf:
default-lease-time 1814400; max-lease-time 1814400;
Un-Do these customizations
You can un-do these customizations with:
rm -f /etc/e-smith/templates-custom/etc/dhcpd.conf/25LeaseTimeDefault rm -f /etc/e-smith/templates-custom/etc/dhcpd.conf/25LeaseTimeMax expand-template /etc/dhcpd.conf sv restart dhcpd