O diagnóstico do equipamento de comando 'dmesg' é muito importante. Quando o hardware é conectado ou desconectado com a ajuda do comando 'dmesg', podemos ver as informações de detecção ou desconexão do hardware. O comando 'dmesg' pode ser usado na maioria dos sistemas operacionais baseados em Linux e Unix.
Abaixo, mostramos algumas das ferramentas de comando 'dmesg' mais prestigiadas e seus exemplos práticos de uso. A sintaxe do comando 'dmesg' é a seguinte.
# dmesg [opções ...]
1. Liste todos os drivers carregados no kernel
Podemos usar como 'mais'. Ferramenta de processamento de texto 'tail', 'less' ou 'grep' para processar a saída do comando 'dmesg'. Como a saída do log dmesg não é adequada para exibição completa em uma página, usamos um canal para enviar sua saída para a exibição de página única do comando more or less.
[[email protected] ~] # dmesg | Mais
[[email protected] ~] # dmesg | Menos
Saída
[0.000000] Inicializando o cgroup subsys cpuset
[0.000000] Inicializando o cgroup subsys cpu
[0.000000] Inicializando o cgroup subsys cpuacct
[0.000000] Versão Linux 3.11.0-13-generic (buildd @ aatxe) (versão gcc 4.8.1 (Ubuntu / Linaro 4.8.1-10ubuntu8)) # 20-Ubuntu SMP Wed 23 de outubro de 17:26:33 UTC 2013
(Ubuntu 3.11.0-13.20-generic 3.11.6)
[0.000000] KERNEL suporta cpus:
[0.000000] Intel GenuineIntel
[0.000000] AMD AuthenticAMD
[0.000000] Geode NSC por NSC
[0.000000] Cyrix CyrixInstead
[0.000000] Centauro CentauroHauls
[0.000000] Transmeta GenuineTMx86
[0.000000] Transmeta TransmetaCPU
[0.000000] UMC UMC UMC UMC UMC
[0.000000] e820: mapa de RAM física fornecido pelo BIOS:
[0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] utilizável
[0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reservado
[0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] utilizável
[0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] dados da ACPI
[0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reservado
[0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reservado
[0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fed003ff] reservado
[0.000000] BIOS-e820: [mem 0x00000000fed20000-0x00000000fed9ffff] reservado
[0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000feefffff] reservado
[0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reservado
[0.000000] Proteção NX (Execute Disable): ativa
.....
2. Liste todo o hardware detectado
Para exibir todos os dispositivos de disco rígido detectados pelo kernel, você pode usar o comando 'grep' para procurar a palavra-chave 'sda', da seguinte maneira:
[[email protected] ~] # dmesg | sda apreendido
[1.280971] sd 2: 0: 0: 0: [sda] 488281250 blocos lógicos de 512 bytes: (250 GB / 232 GiB)
[1.281014] sd 2: 0: 0: 0: [sda] A proteção de gravação está desativada
[1.281016] sd 2: 0: 0: 0: [sda] Modo Sense: 00 3a 00 00
[1.281039] sd 2: 0: 0: 0: [sda] Cache de gravação: ativado, cache de leitura: ativado, não suporta DPO ou FUA
[1.359585] sda: sda1 sda2 <sda5 sda6 sda7 sda8>
[1.360052] sd 2: 0: 0: 0: [sda] Disco SCSI conectado
[2.347887] EXT4-fs (sda1): sistema de arquivos montado com o modo de dados ordenados. Opções: (nulo)
[22.928440] Adicionando 3905532k de swap em / dev / sda6. Prioridade: -1 extensões: 1 em: 3905532k FS
[23.950543] EXT4-fs (sda1): remontado. Opções: errors = remount-ro
[24.134016] EXT4-fs (sda5): sistema de arquivos montado com o modo de dados ordenados. Opções: (nulo)
[24.330762] EXT4-fs (sda7): sistema de arquivos montado com o modo de dados ordenados. Opções: (nulo)
[24.561015] EXT4-fs (sda8): sistema de arquivos montado com o modo de dados ordenados. Opções: (nulo)
Nota 'sda' significa o primeiro disco rígido SATA e 'sdb' significa o segundo disco rígido SATA. Se você deseja visualizar o disco rígido do IDE, procure pelas palavras-chave 'hda' ou 'hdb'.
3. Somente imprima as 20 primeiras linhas do log de comando dmesg
O comando 'dmesg' é seguido pelo comando 'head' para exibir as primeiras linhas, e o comando 'dmesg | head -20' exibirá as primeiras 20 linhas do início.
[[email protected] ~] # dmesg | cabeça -20
[0.000000] Inicializando o cgroup subsys cpuset
[0.000000] Inicializando o cgroup subsys cpu
[0.000000] Inicializando o cgroup subsys cpuacct
[0.000000] Linux versão 3.11.0-13-generic (buildd @ aatxe) (versão gcc 4.8.1 (Ubuntu / Linaro 4.8.1-10ubuntu8)) # 20-Ubuntu SMP Wed 23 de outubro de 17:17:33 UTC 2013 Ubuntu 3.11.0-13.20-generic 3.11.6)
[0.000000] KERNEL suporta cpus:
[0.000000] Intel GenuineIntel
[0.000000] AMD AuthenticAMD
[0.000000] Geode NSC por NSC
[0.000000] Cyrix CyrixInstead
[0.000000] Centauro CentauroHauls
[0.000000] Transmeta GenuineTMx86
[0.000000] Transmeta TransmetaCPU
[0.000000] UMC UMC UMC UMC UMC
[0.000000] e820: mapa de RAM física fornecido pelo BIOS:
[0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] utilizável
[0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reservado
[0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] utilizável
[0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] dados da ACPI
[0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reservado
4. Somente envie os últimos 20 logs do comando dmesg
Após o comando 'dmesg', siga o comando 'tail' ('dmesg | tail -20') para gerar as últimas 20 linhas do comando 'dmesg' É muito útil quando você insere um dispositivo removível.
[[email protected] ~] # dmesg | cauda -20
parport0: estilo PC em 0x378, irq 7 [PCSPP, TRISTATE]
ppdev: driver de porta paralela no espaço do usuário
EXT4-fs (sda1): sistema de arquivos montado com modo de dados ordenados
Adicionando 2097144k de swap em / dev / sda2. Prioridade: -1 extensões: 1 em: 2097144k
readahead-disable-service: atrasando a auditoria do serviço
ip_tables: (C) Equipe principal do Netfilter 2000-2006
nf_conntrack versão 0.5.0 (16384 buckets, 65536 máx.)
NET: família de protocolos registrados 10
lo: Extensões de privacidade desativadas
e1000: O link NIC eth0 é de até 1000 Mbps Full Duplex, controle de fluxo: Nenhum
Pool de encadeamentos de trabalho lento: iniciando
Conjunto de encadeamentos de trabalho lento: Pronto
Cache do FS: carregado
CacheFiles: carregado
CacheFiles: Security nega permissão para nomear contexto de segurança: erro -95
eth0: nenhum roteador IPv6 presente
tipo = auditoria 1305 (1398268784.593: 18630): audit_enabled = 0 antigo = 1 auid = 4294967295 ses = 4294967295 res = 1
readahead-collector: iniciando serviço atrasado auditd
readahead-collector: classificação
readahead-coletor: concluído
5. Procure o hardware detectado que contém sequências específicas
Como a saída do comando 'dmesg' é muito longa, é muito difícil procurar uma sequência de caracteres específica. Portanto, é necessário filtrar algumas linhas de log que contêm seqüências de caracteres como 'usb' 'dma' 'tty' 'memory'. A opção '-i' do comando grep ignora maiúsculas e minúsculas.
[log [email protected]] # dmesg | grep -i usb
[log [email protected]] # dmesg | grep -i dma
[log [email protected]] # dmesg | grep -i tty
[log [email protected]] # dmesg | memória grep -i
Saída
[0.000000] Verificando 1 áreas com pouca memória corrompida
[0.000000] memória inicial mapeada: [mem 0x00000000-0x01ffffff]
[0.000000] Trampolim de memória base no [c009b000] tamanho 9b000 16384
[0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[0.000000] init_memory_mapping: [mem 0x37800000-0x379fffff]
[0.000000] init_memory_mapping: [mem 0x34000000-0x377fffff]
[0.000000] init_memory_mapping: [mem 0x00100000-0x33ffffff]
[0.000000] init_memory_mapping: [mem 0x37a00000-0x37bfdfff]
[0.000000] Intervalos de nós de memória anteriores
[0.000000] PM: memória nosave registrada: [mem 0x0009f000-0x000effff]
[0.000000] PM: memória nosave registrada: [mem 0x000f0000-0x000fffff]
[0.000000] tente a opção 'cgroup_disable = memory' se você não quiser cgroups de memória
[0.000000] Memória: 2003288K / 2059928K disponível (código do kernel 6352K, 607K rwdata, 2640K rodata, 880K init, 880K init, 908K bss, 56640K reservado, 1146920K highmem)
[0.000000] layout da memória do kernel virtual:
[0.004291] Inicializando a memória de subsistema do cgroup
[0.004609] Liberando memória de alternativas do SMP: 28K (c1a3e000 - c1a45000)
[0.899622] Liberando memória initrd: 23616K (f51d0000 - f68e0000)
[0.899813] Verificando se há pouca memória corrompida a cada 60 segundos
[0.946323] agpgart-intel 0000: 00: 00.0: detectou 32768K de memória roubada
[1.360318] Liberando memória do kernel não utilizada: 880K (c1962000 - c1a3e000)
[1.429066] [drm] Memória utilizável por dispositivo gráfico = 2048M
6. Limpe o log do buffer dmesg
Podemos usar o seguinte comando para limpar o log do dmesg. Este comando irá limpar o log no buffer de anel dmesg. Mas você ainda pode visualizar os logs armazenados no arquivo '/ var / log / dmesg'. Qualquer dispositivo ao qual você se conectar gera uma saída de log dmesg.
[log [email protected]] # dmesg -c
7. Monitoramento em tempo real da saída do log do dmesg
Em algumas distribuições, você pode usar o comando 'tail -f / var / log / dmesg' para monitorar a saída do log do dmesg em tempo real.
[[email protected] log] # assista "dmesg | tail -20"
Conclusão: O comando dmesg é muito útil quando o sistema dmesg registra alterações ou ocorrências em tempo real. Você pode usar o man dmesg para obter mais informações sobre o dmesg.