Fedora sem rsyslog e cronie

A partir do systemd 38 existe uma implementação syslog nativa, o journal. O Fedora (F17 ou superior), contudo, manteve o rsyslog na instalação padrão, passando a ter dois sistemas de log ao mesmo tempo (o systemd encaminha as mensagens para o rsyslog). Apesar de não ter todos os recursos corporativos do rsyslog, o journal pode ser o suficiente para desktops ou até mesmo servidores. Decidi testar removendo o rsyslog:

# yum remove rsyslog

Se o Yum estiver configurado para automaticamente remover dependências órfãs, irão junto cronie, cronie-anacron e crontabs.

Na verdade os demais pacotes serem removidos é um bug, pois o pacote RPM do systemd no Fedora 17 não tem um "Provides: syslog", mesmo tendo uma implementação syslog embutida. No F18, ao remover o rsyslog, o YUM não mais considerará que o cronie e turma ficaram órfãos.

Considerarei que você tenha removido o cronie (fork do cron mantido pela Red Hat) e companhia. Sem ele, as tarefas agendadas não funcionarão mais. Aqui, a única tarefa que preciso é a do logrotate, pois do contrário os logs do Samba e do Squid entupiriam o sistema de arquivos.

Uma unidade do tipo .timer nos permite ativar outra .service em determinado intervalo de tempo. Não possui ajuste tão fino como o cronie, mas é o suficiente. Os arquivos a seguir fazem parte do tarball oficial:

logrotate.timer/etc/systemd/system/logrotate.timer

logrotate.service/etc/systemd/system/logrotate.service

Para ativá-lo:

# systemctl daemon-reload
# systemctl enable logrotate.timer
# systemctl start logrotate.timer

Para fazer o systemd armazenar o journal no disco:

# mkdir -p /var/log/journal

Pronto, Fedora sem rsyslog e cronie (dois serviços a menos) e com o logrotate sendo executado diariamente. Os arquivos /var/log/{messages,secure,maillog,spooler} poderão ser excluídos, pois não serão usados. O journal é um arquivo binário que é manipulado pelo comando journalctl.

Comentários