Como ya debemos saber, FreeBSD diferencia las aplicaciones de sistema, de las instaladas de terceros, con lo cual, servicios como por ejemplo named , no tienen su configuración en /etc directamente como pasa con GNU/Linux, si no que estos se trasladan a /usr/local/etc , lo cual desde la perspectiva Unix , tiene mucho más sentido. Pero no entraremos en esta discusión ahora.

Lo que nos interesa es poder rotar los logs , como pasa con por ejemplo los que genera maillog. Y para esto FreeBSD dispone de una utilidad llamada newsyslog. De la que podemos consultar el manual aquí.

Su configuración se encuentra en /etc/newsyslog.conf , ahora sí, esta si es una utilidad de sistema, y tiene una pinta tal que esta:

root@fbsdsrv01:~ # cat /etc/newsyslog.conf
# configuration file for newsyslog
# $FreeBSD$
#
# Entries which do not specify the '/pid_file' field will cause the
# syslogd process to be signalled when that log file is rotated.  This
# action is only appropriate for log files which are written to by the
# syslogd process (ie, files listed in /etc/syslog.conf).  If there
# is no process which needs to be signalled when a given log file is
# rotated, then the entry for that file should include the 'N' flag.
#
# Note: some sites will want to select more restrictive protections than the
# defaults.  In particular, it may be desirable to switch many of the 644
# entries to 640 or 600.  For example, some sites will consider the
# contents of maillog, messages, and lpd-errs to be confidential.  In the
# future, these defaults may change to more conservative ones.
#
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/var/log/all.log   600  7  * @T00  J
/var/log/auth.log   600  7     1000 @0101T JC
/var/log/console.log   600  5  1000 *     J
/var/log/cron    600  3  1000 *     JC
/var/log/daily.log   640  7  * @T00  JN
/var/log/debug.log   600  7     1000 *     JC
/var/log/init.log   644  3  1000 *     J
/var/log/kerberos.log   600  7  1000 *     J
/var/log/maillog   640  7  * @T00  JC
/var/log/messages   644  5  1000 @0101T JC
/var/log/monthly.log   640  12  * $M1D0 JN
/var/log/devd.log   644  3  1000 *     JC
/var/log/security   600  10  1000 *     JC
/var/log/utx.log   644  3  * @01T05 B
/var/log/weekly.log   640  5  * $W6D0 JN
/var/log/daemon.log   644  5  1000 @0101T JC

<include> /etc/newsyslog.conf.d/[!.]*.conf
<include> /usr/local/etc/newsyslog.conf.d/[!.]*.conf
root@fbsdsrv01:~ #

Que podemos interpretar fácilmente. Quizás la columna más engorrosa sea la de when , pero un vistazo al manual nos lo aclara rápidamente. Ahora por ejemplo podríamos agregar una línea como:

/var/log/named.log bind:bind 644  7  * @T00  J   /var/run/named/pid

Dentro de /usr/local/etc/newsyslog.conf.d/named.conf , esta vez sí en la ruta de aplicaciones “no base”, y en la que especificaremos que queremos que el servicio named , rote sus log diariamente, sin tener en cuenta su tamaño, y hasta un máximo de 7.

Recordemos reiniciar este daemon de newsyslog por si las moscas, aunque creo que no es estrictamente necesario.

root@fbsdsrv01:~ # service newsyslog restart
Creating and/or trimming log files.
root@fbsdsrv01:~ #