Respostas:
Quando você exclui o arquivo mail.log, o rsyslog (no ubuntu) solta o identificador para o arquivo. Para que ele funcione novamente no Ubuntu, por favor, forneça:
sudo service rsyslog restart
Isso não apenas criará um novo arquivo, mas também começará a gravar logs.
Este é um erro no syslog, mas ilustra um problema comum quando um arquivo é excluído enquanto ele é aberto por um programa. Quando você faz uma "rm", está removendo uma entrada de diretório, mas NÃO está removendo o arquivo subjacente. O sistema operacional mantém uma contagem de referências ao arquivo e, na verdade, não exclui os dados subjacentes do arquivo até que a contagem de referência chegue a zero. No caso de um arquivo médio, a contagem de referência do arquivo não aberto é uma (a entrada do diretório). Quando o arquivo é aberto, a contagem é incrementada para dois. Se um segundo programa abrir o mesmo arquivo, a contagem será incrementada para três. Se a entrada do diretório agora for excluída, a contagem será decrementada para dois - o que significa que o arquivo é anômalo (sem nome),
Quando você exclui / var / log / mail, o criador de logs do sistema ainda tem o arquivo aberto para gravação. Se você criar um novo / var / log / mail, ele apontará para um arquivo diferente daquele que o registrador do sistema está escrevendo no momento. A única maneira de tornar tudo consistente é reiniciar o criador de logs do sistema. Quando o criador de logs do sistema original é encerrado, todos os arquivos associados a ele são fechados - incluindo o registro de mensagens anônimas cuja entrada de diretório você excluiu. Quando você reinicia o log do sistema, ele reabre / var / log / mail quando precisar gravar uma mensagem de log e o mantém aberto posteriormente.
Outra maneira de descobrir isso é quando um programa em execução preenche todo o disco com dados do arquivo; o usuário exclui o arquivo muito grande, mas o espaço em disco não é liberado, porque o arquivo ainda existe e está ocupando espaço em disco, mas a entrada do diretório foi removida. Quando o programa termina (porque o usuário o matou ou terminou sozinho), o espaço em disco será recuperado porque a contagem de referência no arquivo será zero.
O que o criador de logs pode fazer para evitar isso é primeiro gravar a mensagem de log, verificar se a entrada do diretório do arquivo de log existe e, se não existir, feche o arquivo de log original, abra um novo e reescreva o mensagem - para que a mensagem não se perca. Mas fazer tudo isso exigiria muito mais complexidade do que o criador de logs do sistema deveria ter - para cada mensagem gravada levará um pouco mais de tempo para ser gravada devido à verificação extra do diretório - que será bem-sucedida sempre que o arquivo for NÃO foi excluído.
Para entender todas as opções acima com mais clareza, o seguinte comando é instrutivo, pois descreve a chamada do sistema que executa a remoção da entrada de diretório e o decremento de referência: "man 3 unlink"
Esse não é o problema no CentOS 7. Alguém pensou que seria uma ótima idéia ter os logs de correio do postfix para percorrer o journaler. Se você deseja ver os logs do postfix:
journalctl -u postfix
(para ver o log inteiro)
journalctl -u postfix -f
(para ajustar o log)
Você também pode precisar no main.cf para postfix
syslog_name = postfix
journalctl --vacuum-time=1d