From 5935d490bfc325f716b4e561f29eea6ee6d4858f Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Wed, 23 Feb 2022 11:40:45 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20infos=20pour=20mettre=20=C3=A0=20jour?= =?UTF-8?q?=20serial?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoBind.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/HowtoBind.md b/HowtoBind.md index eaf7b676..4172ed10 100644 --- a/HowtoBind.md +++ b/HowtoBind.md @@ -610,4 +610,26 @@ server 192.0.2.53 { edns no; }; Voir +### Mise a jour du serial + +Vous devez repérer un pattern unique sur la ligne du serial, par exemple `; serial` + + +On peut ainsi mettre à jour le serial d'une zone : + +~~~ +$ serial=$(date "+%Y%m%d%H") +$ sed -i "s/^\([ \t]*\)[0-9]\{10\}\([ \t]*; serial\)/\1$serial\2/" db.example.com +~~~ + +Si l'on doit automatiser, on utilisera les commandes suivantes pour prendre en compte plusieurs modifications le même jour : + +~~~ +zonefile=db.example.com +serial=$(grep -E '[ \t]*[0-9]{10}\s*; serial' $zonefile | sed "s/[ \t]*\([0-9]\{10\}\)[ \t]*; serial/\1/") +if [ `date "+%Y%m%d%H"` -gt $serial ]; then serial=$(date "+%Y%m%d%H"); else serial=$(( $serial + 1 )); fi +sed -i "s/^\([ \t]*\)[0-9]\{10\}\([ \t]*; serial\)/\1$serial\2/" $zonefile +~~~ + +