2011-02-14 5 views
1

은 전에 100 번 stackoverflow를 방문한 것처럼 느낍니다. 항상 좋은 해결책을 찾았지만 지금은 붙어 있습니다.루비 : 페도라 기기의 전원이 켜지는 시간을 확인하십시오.

컴퓨터가 매일 얼마나 오랫동안 실행되는지 모니터링하고 싶습니다. 이것은 Fedora 컴퓨터에서 실행되는 Ruby로 작성된 프로그램의 일부입니다.

이전에 WndProc을 사용하여 관련 전원 이벤트를 잡을 수있는 Windows에서 유사한 작업을 수행했습니다. 그러나 페도라 (또는 리눅스)를 사용하면 전원 켜기 및 전원 끄기/절전/최대 절전 모드를 감지 할 수있는 좋은 방법이 없습니다 ....

모든 제안 사항을 매우 높이 평가합니다.

감사합니다,

편집 jayrock : 나는 내가 무엇을 달성하고자에서 명확하지 않은 것 같다. 실제로 현재 가동 시간뿐 아니라 과거 가동 시간에 대한 정보를 원합니다. 따라서 나는 "컴퓨터가 지난 14 일 동안 x 시간 동안 작동하고있다"또는 이와 유사한 것을 알아야한다. 또 다른 첨가제는 예를 들어, last 명령은 작업을 수행하지 않습니다. 시스템이 최대 절전 모드 또는 일시 중단 모드로 전환되면 표시되지 않습니다.

답변

0

루비 사양을 모르지만 리눅스에 명령 실행 시간이 있습니다.

난 당신이

그래서 system 'uptime'

같은 것이 그런 다음 당신은 uptime 에 StackOverflow처럼 역 따옴표를 사용하는 것이 그

0

의 결과를 분석 할 수있을 것입니다 그들과 관련 시스템을 사용할 필요가 루비 생각 이 답안 상자에서 코드 스타일로 사용합니다.

1

사용자의 로그인을 기록하는 last 명령의 출력을 구문 분석 할 수 있습니다. 의사 사용자 reboot이 "로그인 됨"이라면 시스템이 재부팅되었음을 알 수 있습니다. (이것은 우분투에서 유효합니다; 아마도 페도라는 boot과 같은 다른 이름을 사용합니다.)

보다 직접적인 인터페이스가있을 수 있습니다. Google 주변에서 ruby + utmp. 일반적으로 /var/run에있는 utmp 파일에는 last 명령이보고하는 데이터가 기록됩니다.

+0

마지막 명령은 시스템이 절전 모드로 전환 될 때 기록하지 않기 때문에 불행히도 내 용도로 작동하지 않습니다. – jayrock

+0

@jayrock :'last'는 사용자가 마지막으로 로그인 한 시간도 표시합니다. '재부팅 '의 경우 시스템 가동 시간과 동일합니다. –

+0

고마워, 그렇게하는 것 같아. 더 많은 테스트를 해봅시다. – jayrock

관련 문제