depois o dmesg suporta o sinalizador -T, talvez tente usar -T se o seu dmesg o suportar.
ilansch
centos 7+ suportadmesg -T
rogerdpack
Respostas:
12
dmesglê o buffer do anel de log do Kernel. Não faz timestamps. O que você deve fazer é configurar o syslog para pegar os logs do kernel desse buffer e enviá-los para um arquivo (se ainda não estiver definido para isso). Observe que a configuração padrão do syslog do CentOS 5.x envia os logs do kernel para /var/log/messages, se bem me lembro.
Se você deseja enviar todos os logs do kernel (dmesg) para /var/log/kern.log, usando o daemon syslog padrão, adicione uma linha como a seguinte a/etc/syslog.conf
Obrigado pela resposta. Para quem procura rodar o CentOS 6, eu encontrei-o em/etc/rsyslog.conf
Safado 30/03
Sim, com o CentOS (e RHEL) 6.x, eles mudaram o daemon syslog padrão do antigo sysklogd para rsyslog. Também está disponível como um pacote (suportado) para o RHEL / CentOS 5.x.
22612 Christopher Christopherell
1
Bem, eu tive isso na minha lista de coisas para descobrir, mas agora você me salvou algum googling
Safado
8
Existe a solução "Ativando carimbos de data / hora para dmesg / Kernel Ring Buffer"
Você pode adicionar:
printk.time=1
para o cmdline do kernel.
Quanto a mim, adicionei ao rc.local em todas as máquinas com fantoches. É mais fácil para mim):
if test -f /sys/module/printk/parameters/time; then
echo 1 > /sys/module/printk/parameters/time
fi
Usar rc.localé realmente uma solução feia para isso (usar rc.localquase sempre é uma solução feia para qualquer coisa). Uma solução melhor seria printk.time = 1inserir /etc/sysctl.confou inserir um arquivo /etc/sysctl.d/. Essa é a razão pela qual esses arquivos existem. Se enfiar coisas no rc.localfinal, você terá uma partida frágil, complicada, bagunçada e pouco confiável.
Christopher Cashell
É o que está em comentário de @ChristopherCashell é a única resposta correta para esta pergunta. É uma pena que não seja uma resposta real.
21416 Petr
1
Eu escrevi esse script simples. Sim, é lento. Se você quer algo mais rápido, você realmente escreve um script em perl, python ou algo mais. Tenho certeza de que esse script simples pode mostrar como ele pode ser calculado.
Observe que eu ignorei a fração de segundos registrada em cada linha (após o. No registro de data e hora).
O perl -n é uma maneira de ler a entrada padrão e ler a variável $ _.
O corpo (não a seção BEGIN) é executado uma vez para cada linha.
BEGIN executa o código em {} uma vez.
$ a é o início do dmesg desde a época (segundos)
O comando s / ... pega o valor em $ _ e substitui a parte \ s * #####. ###### do carimbo de data / hora pela versão "localtime" do deslocamento dmesg ($ 1) adicionado a a hora de início do sistema ($ a)
print $ a imprime o dmesg com o carimbo de data / hora compatível com a localidade, substituído pelo carimbo de hora "segundos desde a inicialização".
perl -n é uma maneira de ler a entrada padrão e ler a variável $ _.
O corpo (não a seção BEGIN) é executado uma vez para cada linha.
BEGIN executa o código em {} uma vez.
$ a é o início do dmesg desde a época
O comando s / ... pega o valor em $ _ e substitui a parte #####. ###### do registro de data e hora pela versão "localtime" do deslocamento dmesg ($ 1) adicionado ao início do sistema tempo ($ a)
print $ a imprime o dmesg com o carimbo de data / hora compatível com a localidade, substituído pelo carimbo de hora "segundos desde a inicialização".
@kasperd Aqui está o que isso significa: - perl -n é uma maneira de ler a entrada padrão e ler a variável $ _. O corpo (não a seção BEGIN) é executado uma vez para cada linha. - BEGIN executa o código em {} uma vez. $ a é o início do dmesg desde a época - O s/...comando pega o valor em $ _ e substitui a parte #####. ###### do registro de data e hora pela versão "localtime" do deslocamento do dmesg ($ 1 ) adicionado à hora de início do sistema ($ a). - print $aimprime o dmesg com o carimbo de data / hora compatível com a localidade, substituído pelo carimbo de hora "segundos desde a inicialização".
dmesg -T
Respostas:
dmesg
lê o buffer do anel de log do Kernel. Não faz timestamps. O que você deve fazer é configurar o syslog para pegar os logs do kernel desse buffer e enviá-los para um arquivo (se ainda não estiver definido para isso). Observe que a configuração padrão do syslog do CentOS 5.x envia os logs do kernel para/var/log/messages
, se bem me lembro.Se você deseja enviar todos os logs do kernel (dmesg) para
/var/log/kern.log
, usando o daemon syslog padrão, adicione uma linha como a seguinte a/etc/syslog.conf
fonte
/etc/rsyslog.conf
Existe a solução "Ativando carimbos de data / hora para dmesg / Kernel Ring Buffer"
Você pode adicionar:
para o cmdline do kernel.
Quanto a mim, adicionei ao rc.local em todas as máquinas com fantoches. É mais fácil para mim):
fonte
rc.local
é realmente uma solução feia para isso (usarrc.local
quase sempre é uma solução feia para qualquer coisa). Uma solução melhor seriaprintk.time = 1
inserir/etc/sysctl.conf
ou inserir um arquivo/etc/sysctl.d/
. Essa é a razão pela qual esses arquivos existem. Se enfiar coisas norc.local
final, você terá uma partida frágil, complicada, bagunçada e pouco confiável.Eu escrevi esse script simples. Sim, é lento. Se você quer algo mais rápido, você realmente escreve um script em perl, python ou algo mais. Tenho certeza de que esse script simples pode mostrar como ele pode ser calculado.
Observe que eu ignorei a fração de segundos registrada em cada linha (após o. No registro de data e hora).
Espero que ajude. :)
fonte
A modificação do script na linha do caso não começa com um "["
fonte
Esta é uma atualização da sugestão de Plutoid, removendo os espaços iniciais do registro de data e hora.
fonte
Um pequeno script perl como abaixo. É uma maneira geral, e eu não sou o autor.
perl -n
é uma maneira de ler a entrada padrão e ler a variável $ _.fonte
s/...
comando pega o valor em $ _ e substitui a parte #####. ###### do registro de data e hora pela versão "localtime" do deslocamento do dmesg ($ 1 ) adicionado à hora de início do sistema ($ a). -print $a
imprime o dmesg com o carimbo de data / hora compatível com a localidade, substituído pelo carimbo de hora "segundos desde a inicialização".