From f6087a5e0f5becf25b86e6b7361a0ff06c8f8895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= <cedric@abonnel.fr> Date: Tue, 11 Mar 2025 20:45:21 +0100 Subject: [PATCH] ajout d'un script de suppression --- scripts/server-dhcp/.list_files.txt | 1 + scripts/server-dhcp/remove_dns_entry.sh | 60 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 scripts/server-dhcp/remove_dns_entry.sh 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