Bash 스크립트에서 사용자 활동 확인

Bash 스크립트에서 사용자 활동 확인

나는 대본을 쓰고 있다(다양한 데스크탑에서 실행) 거기에 사용자 활동이 없는지 확인하고 싶습니다.

비활성은 다음과 같이 정의됩니다.

  1. 지난 N분 동안 사용자가 GUI와 상호 작용하지 않았습니다(= 마우스 또는 키보드 입력 없음).
  2. 원격 SSH 연결 사용자가 지난 N분 동안 명령을 실행하지 않았거나 데이터를 전송하지 않았습니다.

내가 지금까지 어디 있었어?

광고 1)유일하게 생각나는 것은 xprintidle과거에 사용해본 적이 있고 현재 사용자의 유휴 시간을 확인하는 믿을 수 있는 방법이지만 "현재 또는 미래의 사용자가 로그인했거나 로그인하지 않은 경우에는 작동하지 않는 것 같습니다. "라는 가정으로.

광고 2)다음을 사용하여 열려 있는 세션이 있는지 확인할 수 있습니다.

sudo netstat -tnpa | grep 'ESTABLISHED.*sshd'

이것은 훌륭하게 작동하지만 활동을 완전히 확인하지는 않습니다. 열려 있지만 적극적으로 사용되지 않는 세션을 무시하고 싶습니다.

질문

  1. 이 두 가지 검사 중 하나에 대한 솔루션을 제안할 수 있습니까?
  2. 이러한 검사를 수행하기 위한 더 나은 포괄적/일반 접근 방식(예: 프로그램)이 있습니까?

관련 정보