From 56c1f4aef2dce44737c32d53ef2995afaffbab5e Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 19 Jun 2024 10:20:33 +1000 Subject: [PATCH] Add a rndc command to close currently open log files The new command is 'rndc closelogs'. --- bin/named/control.c | 4 ++++ bin/named/include/named/control.h | 1 + bin/rndc/rndc.rst | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/bin/named/control.c b/bin/named/control.c index a3e009799e..d2aa5a9260 100644 --- a/bin/named/control.c +++ b/bin/named/control.c @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -201,6 +202,9 @@ named_control_docommand(isccc_sexpr_t *message, bool readonly, command_compare(command, NAMED_COMMAND_MODZONE)) { result = named_server_changezone(named_g_server, cmdline, text); + } else if (command_compare(command, NAMED_COMMAND_CLOSELOGS)) { + isc_log_closefilelogs(named_g_lctx); + result = ISC_R_SUCCESS; } else if (command_compare(command, NAMED_COMMAND_DELZONE)) { result = named_server_delzone(named_g_server, lex, text); } else if (command_compare(command, NAMED_COMMAND_DNSSEC)) { diff --git a/bin/named/include/named/control.h b/bin/named/include/named/control.h index c01cb7b00e..6f3660ad0f 100644 --- a/bin/named/include/named/control.h +++ b/bin/named/include/named/control.h @@ -29,6 +29,7 @@ #define NAMED_CONTROL_PORT 953 #define NAMED_COMMAND_ADDZONE "addzone" +#define NAMED_COMMAND_CLOSELOGS "closelogs" #define NAMED_COMMAND_DELZONE "delzone" #define NAMED_COMMAND_DNSSEC "dnssec" #define NAMED_COMMAND_DNSTAP "dnstap" diff --git a/bin/rndc/rndc.rst b/bin/rndc/rndc.rst index da9f0710e4..62603d1da8 100644 --- a/bin/rndc/rndc.rst +++ b/bin/rndc/rndc.rst @@ -152,6 +152,15 @@ Currently supported commands are: See also :option:`rndc delzone` and :option:`rndc modzone`. +.. option:: closelogs + + This command closes currently open log files. It is intended to be used + by external log rotation tools following this proceedure. + + 1) rename the log files + 2) run ``rndc closelogs`` + 3) optionally compress the log files + .. option:: delzone [-clean] zone [class [view]] This command deletes a zone while the server is running.