Sim, existe. A regra que está registrando essas mensagens precisa estar dentro de um filtro, como este: (Suponha que as mensagens inteligentes estejam sendo registradas em /var/log/smartd.log)
if ($programname == "smartd") then {
if not ($msg contains "Currently unreadable (pending) sectors") then {
*.* /var/log/smartd.log
}
stop
}
O código acima corresponderá a todas as mensagens provenientes do serviço smartd. Se a mensagem não tiver essa sequência, ela registrará todas as mensagens em /var/log/smartd.log, mas se ela contiver essa sequência, ela não será registrada. Todos os logs após este ponto serão descartados pela regra de parada.
Você pode colocar esse trecho de código em um arquivo em /etc/rsyslog.d/ que termina com .conf, como 01-smartd.conf. Como o rsyslog.conf carrega todos os arquivos neste diretório que terminam com .conf, os arquivos que começam com 00 entre 49 serão lidos primeiro que o padrão, 50-default.conf.
Note que com a regra de parada no código, se for lida primeiro, as mensagens não atingirão as regras no 50-default.conf, portanto, nenhuma mensagem duplicada existirá.