시작 이후 프로그램/명령 빈도 분석(명령 대 PID 히스토그램)

시작 이후 프로그램/명령 빈도 분석(명령 대 PID 히스토그램)

내 시스템의 어떤 프로그램이 마지막 재부팅 이후 가장 자주 PID를 가져오는지, 그리고 얼마나 자주 받는지 확인하고 싶습니다. 지금 실행 하면 열과 열을 top볼 수 있지만 현재 시스템 상태만 볼 수 있습니다. 일부 로그에서 채굴하거나 일부 로그를 활성화하고 싶기 때문에 새로운 내용이 있을 때마다 테이블 에 행을 추가하고 해당 테이블을 분석하고 싶습니다. 예를 들어:PIDCOMMANDPIDCOMMAND

      1 root      20   0  168424  10960   7820 S   0.0   0.1   0:02.78 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     10 root      20   0       0      0      0 S   0.0   0.0   0:02.26 ksoftirqd/0
     11 root      20   0       0      0      0 I   0.0   0.0   0:31.57 rcu_sched

PID여러 개의 s가 종료된 것을 볼 수 있습니다 (예: 5, 7, 8). 일단 시작하면 다 녹음하고 싶어요. 이를 수행하는 명령이나 유틸리티가 있습니까?

답변1

auditd이는 Linux 커널에 내장된 감사 기능을 사용하는 기본 솔루션입니다 .

auditctl -a always,task # the one below should also work; pick one
auditctl -a always,exit -F arch=b64 -S clone,fork,vfork,execve
systemctl restart auditd
# wait a while and use your computer

또는 audit구성 파일을 작성하고 서비스를 활성화한 후 다시 시작하세요.

echo "-a always,task" > /etc/audit/rules.d/logpid.rules
echo "-a always,exit -F arch=b64 -S clone,fork,vfork,execve" > /etc/audit/rules.d/logpid.rules
systemctl enable auditd
systemctl start auditd
reboot

그런 다음 다시 시작한 후 일정 기간 동안 사용하고 감사 보고서를 확인하세요.

aureport --start today --interpret --executable --summary # sort by execs the number of audit events
aureport --start today --interpret --syscall --summary

관련 정보