Como ler a coluna “IDLE” na saída do comando 'w' do Linux?

8

Estou tentando descobrir um processo que monitore as sessões dos usuários em um servidor remoto e avise-os quando estiverem ociosos por muito tempo, o que com o comando w do Linux é apropriadamente apropriado.

O problema é - w usa três formatos diferentes para especificar o tempo ocioso da sessão, e não consigo entendê-los corretamente. Uma saída de w pode ser assim:

 11:40:57 up 400 days, 10:46, 13 users,  load average: 5.07, 5.10, 4.83
USER     TTY      FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
john     pts/1    XX.XX.XX.XX   Wed13   22:29m  0.13s  0.04s ssh master-db
june     pts/2    XX.XX.XX.XX   Wed13   46.00s  0.67s  0.13s -bash
jenn     pts/4    XX.XX.XX.XX   11:13   27:47   4.16s  0.11s -bash

Como você pode ver, o IDLE tem formatos diferentes para cada um dos usuários:

  • "AA.BBs" obviamente significa que AA segundos e BB 1 / 100ths de segundo (46 segundos no caso de junho) se passaram desde que ela estava ativa pela última vez no console.
  • "AA: BBm" provavelmente significa que AA horas e BB minutos se passaram desde que John esteve ativo pela última vez em sua sessão.
  • "AA: BB" é o formato que não consigo descobrir - há quanto tempo Jennifer não está ativa em sua sessão?
por Guss 18.08.2011 / 10:58

4 respostas

3

Sem um qualificador, significa MM: SS - isto é, minutos e segundos inteiros. Como um bônus adicional, há um quarto formato que você não tem nessa saída - um número de dias (NNdays) de inatividade.

    
por 18.08.2011 / 11:05
10

Da página do manual

The standard format is DDdays, HH:MMm, MM:SS or SS.CC if the times are greater than 2 days, 1hour, or 1 minute respectively.

, então sua saída é MM: SS (> 1m e < 1 hora).

    
por 18.08.2011 / 11:10
1

Não é bem a resposta à sua pergunta, mas uma abordagem mais fácil para verificar o tempo ocioso das sessões de login seria ver / dev / pts. Os horários de modificação dos arquivos refletem a última vez que a sessão de login recebeu entrada.

Você deve poder fazer operações estatísticas (por exemplo, stat --format="% n% X" *), e manter tudo em segundos. Deveria tornar qualquer cálculo de tempo mais fácil.

    
por 18.08.2011 / 14:19
1

A resposta é 27 minutos e 47 segundos

  1. o formato padrão é MM: SS.
  2. 22: 29m significa 22 horas e 29 minutos
  3. 46,00 significa 46 segundos
  4. 4d significa 4 dias
por 13.09.2017 / 16:54