diff --git a/clear_dhcp.sh b/clear_dhcp.sh new file mode 100644 index 0000000000000000000000000000000000000000..0c9aa6c791e73ff36fc9a054ee5c148e72612d0a --- /dev/null +++ b/clear_dhcp.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ -z "$2" ] || [ "$1" != 'Name' ] && [ "$1" != 'MAC' ] +then + echo "Usage:" + echo "\t $0 MAC aa:bb:cc:dd:ee:ff" + echo "Or" + echo "\t $0 Name hostname" + exit 1 +fi + +lease_file="/var/lib/dhcp/dhcpd.leases" +cp $lease_file $lease_file.$(date "+%Y%m%d-%H%M%S") + +if [ "$1" == 'MAC' ] +then + MAC=$2 + awk -v MAC="$MAC" 'BEGIN{IN=0;ACCU=""} /^lease/{print ACCU;ACCU="";IN=1;do_print=1} /hardware ethernet/{if($3==MAC";"){do_print=0}} {ACCU=ACCU"\n"$0} /^}$/{if(do_print==1){print ACCU};IN=0;do_print=0;ACCU=""}' $lease_file > /tmp/$$ +else + HOST="\"$2\"" + awk -v HOST="$HOST" 'BEGIN{IN=0;ACCU=""} /^lease/{print ACCU;ACCU="";IN=1;do_print=1} /client-hostname/{if($2==HOST";"){do_print=0}} {ACCU=ACCU"\n"$0} /^}$/{if(do_print==1){print ACCU};IN=0;do_print=0;ACCU=""}' $lease_file > /tmp/$$ +fi +sed '/^$/d' /tmp/$$ > $lease_file +systemctl restart isc-dhcp-server diff --git a/registry/scripts/upgrade_all.sh b/registry/scripts/upgrade_all.sh index 7e2dd3796013b3e4032e7d9e9436bd18f7bdd11a..29d9975c53480daefe19050f5ea141008901ff11 100755 --- a/registry/scripts/upgrade_all.sh +++ b/registry/scripts/upgrade_all.sh @@ -150,7 +150,7 @@ do log "===== Begin host $name ($mac - $ip) ====" cat $f >> $mainlog log "===== End host $name ====" - if [ $(wc -l $f | awk '{print $1}') -gt 0 ] + if [ $(wc -l $f | awk '{print $1}') -lt 0 ] then DOWNS[$mac]=$name fi