diff --git a/scripts/server-dhcp/.list_files.txt b/scripts/server-dhcp/.list_files.txt index 182f944..bbdd17b 100644 --- a/scripts/server-dhcp/.list_files.txt +++ b/scripts/server-dhcp/.list_files.txt @@ -1,3 +1,4 @@ add_dns_entry.sh get_first_free_ip.sh +remove_dns_entry.sh setup_dhcp.sh diff --git a/scripts/server-dhcp/remove_dns_entry.sh b/scripts/server-dhcp/remove_dns_entry.sh new file mode 100644 index 0000000..cec8e85 --- /dev/null +++ b/scripts/server-dhcp/remove_dns_entry.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Importer les fonctions communes +source "$(dirname "$0")/../common/common_utils.sh" + +# Vérifier si le script est exécuté en root +check_root + +# Fichier de configuration de dnsmasq +DNSMASQ_CONF="/etc/dnsmasq.d/custom_hosts" + +# Vérifier que dnsmasq est installé +if ! command -v dnsmasq &> /dev/null; then + echo "dnsmasq n'est pas installé. Installez-le avec : sudo ./setup_dhcp.sh" + exit 1 +fi + +# Vérifier les arguments +if [[ $# -ne 1 ]]; then + echo "Usage: $0 <IP | HOSTNAME>" + exit 1 +fi + +TARGET="$1" +MODIFIED=0 + +# Vérifier si le fichier existe +if [[ ! -f "$DNSMASQ_CONF" ]]; then + echo "Le fichier $DNSMASQ_CONF n'existe pas. Aucun enregistrement à supprimer." + exit 1 +fi + +# Supprimer par IP +if [[ "$TARGET" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + # Vérifier si l'IP existe dans le fichier + if grep -q "/$TARGET$" "$DNSMASQ_CONF"; then + sed -i "/\/$TARGET$/d" "$DNSMASQ_CONF" + echo "Toutes les entrées associées à l'IP $TARGET ont été supprimées." + MODIFIED=1 + else + echo "Aucune entrée trouvée pour l'IP $TARGET." + fi +# Supprimer par Nom d'hôte +else + if grep -qE "^address=/$TARGET/" "$DNSMASQ_CONF"; then + sed -i "/^address=\/$TARGET\//d" "$DNSMASQ_CONF" + echo "L'enregistrement $TARGET a été supprimé." + MODIFIED=1 + else + echo "Aucune entrée trouvée pour le nom d'hôte $TARGET." + fi +fi + +# Redémarrer dnsmasq seulement si une modification a été effectuée +if [[ $MODIFIED -eq 1 ]]; then + systemctl restart dnsmasq + echo "Redémarrage de dnsmasq effectué." +else + echo "Aucune modification nécessaire." +fi