-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathgen_backup_dns_script.sh
executable file
·69 lines (57 loc) · 2.21 KB
/
gen_backup_dns_script.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
# vim: ts=4:sw=4
. ~/plescripts/plelib.sh
. ~/plescripts/global.cfg
EXEC_CMD_ACTION=EXEC
# ============================================================
# Le script par du princide que le réseau est toujours en 24 !
# ============================================================
pub_network_prefix=$(ip addr | grep $if_pub_name | grep inet | cut -d/ -f2 \
| sed "s/^\([0-9]\{1,2\}\) brd.*/\1/")
if [ "$pub_network_prefix" != 24 ]
then
error "Fonctionne avec un préfixe réseau de 24 mais pas de $pub_network_prefix"
LN
exit 1
fi
echo "#!/bin/bash" > ~/plescripts/tmp/restore_dns.sh
echo "cd ~/plescripts/dns" >> ~/plescripts/tmp/restore_dns.sh
echo >> ~/plescripts/tmp/restore_dns.sh
echo "systemctl stop dhcpd" >> ~/plescripts/tmp/restore_dns.sh
echo "systemctl stop named" >> ~/plescripts/tmp/restore_dns.sh
echo >> ~/plescripts/tmp/restore_dns.sh
typeset -r domain=$(hostname -d)
# Trié par rapport à l'ip node.
cat /var/named/named.$domain |\
grep "^[[:alpha:]].*" |\
grep -v localhost |\
sort -n -t "." -k 4 |\
while read server_name f1 server_ip
do
ip_node=$(cut -d. -f4<<<"$server_ip")
if [[ $ip_node -ge $dhcp_min_ip_node && $ip_node -le $dhcp_max_ip_node ]]
then # Les IP dynamiques ne sont pas sauvées.
continue
else
echo "./add_server_2_dns.sh -name=$server_name -ip=$server_ip -not_restart_named"
if [ "${server_name##*-}" == "scan" ]
then # Cas particulier des adresses de SCANs.
network_scan=$(cut -d. -f1-3<<<"$server_ip")
for (( i=1; i <= 2; ++i ))
do
echo "./add_server_2_dns.sh -name=$server_name -ip=$network_scan.$(( ip_node + i )) -not_restart_named"
done
fi
fi
done >> ~/plescripts/tmp/restore_dns.sh
typeset -r leases_file="/var/lib/dhcpd/dhcpd.leases"
echo >> ~/plescripts/tmp/restore_dns.sh
echo "rm $leases_file" >> ~/plescripts/tmp/restore_dns.sh
echo "touch $leases_file" >> ~/plescripts/tmp/restore_dns.sh
echo >> ~/plescripts/tmp/restore_dns.sh
echo "systemctl start named" >> ~/plescripts/tmp/restore_dns.sh
echo "systemctl start dhcpd" >> ~/plescripts/tmp/restore_dns.sh
echo >> ~/plescripts/tmp/restore_dns.sh
chmod ug+x ~/plescripts/tmp/restore_dns.sh
info "Script : ~/plescripts/tmp/restore_dns.sh"
exec_cmd "cat ~/plescripts/tmp/restore_dns.sh"