모든 명령/작업의 자세한 기록(GUI에도 있음)

모든 명령/작업의 자세한 기록(GUI에도 있음)

이 유명한 history명령은 최근에 실행된 명령 목록을 보여줍니다. HISTTIMEFORMAT변수를 설정하면 다음과 같은 내용도 볼 수 있습니다.언제실행하라는 명령. 프로그램 열기/닫기 등 일부 GUI 작업도 기록하는 좀 더 일반적인 버전을 원합니다.

Q: "모든" 사용자 작업(타임스탬프 포함)을 볼 수 있는 유사한 명령이 있습니까? (물론 전부는 아닙니다. "마우스를 여기에서 저쪽으로 이동"하는 것과 같은 것은 아닙니다.)

하지만 대략적으로는 다음과 같습니다.

18.06.2015 09:30 started Firefox
18.06.2015 09:32 started Rhythmbox
18.06.2015 09:35 opened someText.pdf in evince
18.06.2015 09:39 closed Firefox
18.06.2015 09:40 suspended session

정말 멋질 것입니다. 다른 유형의 표현도 가능합니다. 특정 앱이 언제 포커스를 받는지 알 수 있다면 좋을 것입니다.

몇 가지 아이디어: 어쩌면…

  • ...데스크톱 환경을 위한 확장이 있습니다(여기에서는 gnome이 사용됨).
  • ...일부 데스크탑 환경에서는 이 기능을 직접 지원합니다. (이 기능이 제공되면 전환을 고려하겠습니다.)
  • ...명령에는 ps유사한 동작이나 최소한 일부 정보를 얻기 위한 몇 가지 플래그가 있습니다.
  • ...아마도 명령 history, w, ps등에서 정보를 집계하는 것일 수 있습니다.

참고: 내 활동을 모니터링할 수 있기를 원하며 이에 대한 작은 스크립트를 기꺼이 작성하겠습니다. 그러나 예를 들어 적절한 -flags는 무엇 ps이며 어떻게 해야 합니까 grep?

답변1

활동 로그를 사용하여 열린 파일을 추적할 수 있습니다. 하지만 열려 있는 앱을 추적할 수 있는 것이 있는지는 확실하지 않습니다.

이는 까다롭고 노동 집약적인 솔루션일 수 있지만 데스크탑 아이콘을 사용하여 스크립트를 사용하여 애플리케이션을 실행할 수 있습니다. 스크립트에서 로그 파일에 한 줄을 추가하도록 할 수 있습니다.

그것은 마치 ...

#!/bin/sh
echo `date` "Firefox Started" >> /home/username/logs/apps-activity.log
firefox
echo `date` "Firefox Stopped" >> /home/username/logs/apps-activity.log

죄송합니다. 제 bash 기술은 매우 초보적이지만 이해가 되실 것 같습니다. 이것은 훌륭한 해결책은 아니지만 아마도 몇 가지 아이디어를 줄 수 있을 것입니다. ps를 사용하는 경우 애플리케이션당 관련된 프로세스가 꽤 많을 것이므로 이를 작동시키는 것은 상당히 복잡할 것이라고 생각합니다.

Firefox 예를 사용하면 ps 명령을 사용할 때 2개의 프로세스가 실행됩니다. 예를 들어.

$ ps aux | grep firefo[x]
username     5302 11.2  3.5 1391936 564016 ?      Sl   Jul08 553:26 /usr/bin/firefox.real
username    15351  0.8  0.2 482268 47040 ?        Sl   Jul09  29:21 /opt/firefox/plugin-container /usr/lib/flashplugin-nonfree/libflashplayer.so -greomni /opt/firefox/omni.ja -appomni /opt/firefox/browser/omni.ja -appdir /opt/firefox/browser 5302 true plugin

관련 정보