Assistir (girar) a tela de login

Assistir (girar) a tela de login

Estou executando um servidor de e-mail ao qual me conecto usando SSH. My .bash_profileestá configurado para anexar uma sessão SSH a uma determinada screensessão.

Agora eu gostaria de ter um log (por exemplo, o syslog) impresso em uma janela desta sessão de tela. Eu tentei correr

tail -f /var/log/syslog

mas a saída para todos os dias às 6h25. Acho que é nesse momento que o log é girado. Então, existe uma maneira de imprimir o log na tela?

Responder1

Você precisatail --follow=name /var/log/syslog

A razão é que por padrão - supostamente por motivos de desempenho - tail abre o arquivo especificado e então observao descritor de arquivoobtém desse open(2)apelo por mudanças. Isso funciona bem enquanto o arquivo for alterado - anexado ou até mesmo reescrito (truncando-o primeiro), mas para de funcionar se o arquivo forsubstituído- isto é, removido e criado com o mesmo nome, e é isso que logrotatenormalmente acontece.

O modo "nome" --followfaz tailuso de um syscall mais caro stat(2)que na verdade "resolve" o nome do arquivo a cada vez através da camada do sistema de arquivos, e se tailperceber que o arquivo mudou seu chamado"inodo", tailreabre o arquivo.

A saída de man tail:

-f, --follow[={name|descriptor}]

produza dados anexados à medida que o arquivo cresce; um argumento de opção ausente significa 'descritor'

Você também pode consultar a -Fopção de linha de comando, que é definida como

-Figual a--follow=name --retry

Responder2

Seu palpite está realmente correto. Neste momento, o syslog interrompe a gravação no log, faça um gz dele e reinicie o log dele.

Você poderia tentar com

tail -f --retry /var/log/syslog

Dessa forma, o tail deve tentar reabrir o arquivo quando a rotação do log for concluída

informação relacionada