지난 10초 동안 실행된 프로세스의 명령줄을 보는 방법

지난 10초 동안 실행된 프로세스의 명령줄을 보는 방법

지난 10초 동안 실행된 프로세스를 기록하고 나열하는 뷰가 있나요?

특히 명령줄을 추적하고 싶습니다.

답변1

프로세스가 완료되지 않은 경우 다음을 통해 찾을 수 있습니다.

ps axho etime,cmd| sed ':a;s/^\(0*\) /\10/g;ta' | sort | less

그러나 프로세스가 이미 완료되었다면 확실성이 떨어집니다.

검색할 위치를 알아야 합니다...

경고하다!다음은 바이너리가 캐시에 없는 경우, 즉 한동안 액세스되지 않은 경우에만 작동합니다.

아마도 간단한 것만으로도 ls -ltru충분할 것입니다:

/bin/ls -ltru /etc/init.d | tail

그렇지 않으면 다음과 같은 더 복잡한 명령이 나올 수 있습니다.

find /usr/bin -type f -amin -1

find ${PATH//:/ } -type f -amin -1

find ${PATH//:/ } /home/*/bin -type f -amin -1

1분 이내에 접근한 모든 파일이 표시됩니다.

10초면 훨씬 더 어렵습니다.

while read time;do
    read name
    [ $time -lt 10 ] && echo $name
  done < <(find ${PATH//:/ } /home/*/bin -type f -amin -1 -print0 |
    xargs -0 --no-run-if-empty stat -c $(date +%s)$'-%X ;"%n\n"' |
    bc)

답변2

이 시도:

ps k-etime h -eo etimes,command | while read etime comm; do [ $etime -lt 10 ] && echo -e "$etime\t$comm"; done

그러면 지난 10초 이내에 시작되어 아직 실행 중인 모든 프로세스가 표시됩니다.

관련 정보