Files
notes-techniques/scripts/server-dhcp/remove_dns_entry.sh
2025-03-14 08:12:48 +01:00

62 lines
1.7 KiB
Bash

#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# 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