Linux 'w'명령의 출력에서“IDLE”열을 읽는 방법은 무엇입니까?


11

원격 서버에서 사용자 세션을 모니터링하고 너무 오래 유휴 상태 일 때 경고하는 프로세스를 찾으려고합니다 w.Linux 명령을 사용하는 것이 적절합니다.

문제는- w세션의 유휴 시간을 지정하기 위해 3 가지 형식을 사용하는데 제대로 파악할 수 없습니다. 출력은 w다음과 같습니다.

 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

보시다시피, IDLE은 각 사용자마다 다른 형식을 갖습니다.

  • "AA.BBs"는 콘솔에서 마지막으로 활성화 된 이후 AA 초와 BB 1/100 초 (6 월의 경우 46 초)가 지났음을 의미합니다.
  • "AA : BBm"은 John이 세션에서 마지막으로 활동 한 이후 AA 시간과 BB 분이 지났음을 의미합니다.
  • "AA : BB"는 내가 알아낼 수없는 형식입니다-Jennifer가 세션에서 얼마나 오랫동안 활동하지 않았습니까?

답변:


4

한정자가 없으면 MM : SS, 즉 분과 전체 초를 의미합니다. 추가 보너스로, 해당 출력에없는 네 번째 형식 인 며칠 (NNdays)의 활동이 없습니다.


10

매뉴얼 페이지에서

시간이 각각 2 일, 1 시간 또는 1 분보다 큰 경우 표준 형식은 DDdays, HH : MMm, MM : SS 또는 SS.CC입니다.

따라서 출력은 MM : SS (> 1m 및 <1 시간)입니다.


1

귀하의 질문에 대한 대답은 아니지만 로그인 세션의 유휴 시간을 확인하는 더 쉬운 방법은 / dev / pts를 보는 것입니다. 파일의 수정 시간은 로그인 세션이 마지막으로 입력을받은 시간을 반영합니다.

stat 작업 (예 : stat --format = "% n % X"*)을 수행하고 모든 시간을 초 단위로 유지할 수 있어야합니다. 시간 계산이 쉬워집니다.


1
자신이 시간 형식을 구문 분석하는 것을 발견 한 경우 그 시간 소인의 소스를 신기한 시간으로 찾아 볼 수 있습니다.
cjc

1
나는 그것에 대해 뭔가를 읽었지만, 유휴 시간이보고 한 파일 w의 타임 스탬프와 다르다는 것을 알았습니다 /dev/pts. 왜 그런지 알아?
거스

어떤 맥락에서 다른가? 나는 이것을주의 깊게 보지 않았지만 "w"는 어떤 곳에서 정보를 가져와야하며 / dev / pts는 분명한 장소입니다. 아, 어쩌면 화면에 어떤 일이 발생하면 (/ dev / pts / *는 양방향 통신이어야합니다); 이 경우 사용자는 유휴 상태이지만 장치를 가로 지르는 무언가 때문에 / dev / pts / 0이 업데이트됩니다.
cjc

사용자가 일부 활성 로그 파일을 테일링하거나을 사용하는 경우에도 유휴 세션을 종료하고 싶기 때문에 이는 아마도 설명 일 것입니다 watch.
거스

1

답은 27 분 47 초입니다

  1. 기본 형식은 MM : SS입니다.
  2. 22 : 29m은 22 시간 29 분을 의미
  3. 46.00 초는 46 초를 의미합니다
  4. 4 일은 4 일을 의미합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.