저는 Linux top 명령을 사용하여 프로세스의 CPU, RAM, 계산 시간은 물론 프로세스가 생성하는 모든 하위 프로세스를 모니터링하려고 합니다.
다음 구문을 사용하여 top 명령의 출력을 저장할 수 있음을 발견했습니다.
$ top -b > top.txt
그런 다음 Python 스크립트를 사용하여 결과를 구문 분석합니다. 하지만 모니터링 중인 특정 프로세스와 해당 하위 프로세스를 확인할 수 없습니다.
f
top이 실행되는 동안 PPID 필드를 입력하여 top에 추가할 수 있지만 해당 옵션을 사용하는 일괄 모드에서는 작동하지 않는다는 것을 알았습니다 -b
.
결과를 구문 분석할 때 관심 있는 프로세스를 찾을 수 있도록 PPID를 표시하고 top 명령의 출력을 저장하는 방법이 있습니까?
내 특정 문제는 배치 모드에서 top을 사용할 때 출력 파일에 PPID를 포함하는 것입니다.프로세스의 CPU, RAM 및 컴퓨팅 시간을 모니터링하기 위한 더 나은 제안이 있다면 그것도 환영할 것입니다.
답변1
대화형 상단 디스플레이에 PPID(또는 기타 필드)를 추가한 후 간단히 다음을 사용할 수 있습니다 W(수도승). 그런 다음 종료( q)하고 사용하면 top -b
대화형으로 변경한 필드가 맨 위에 포함되어 표시됩니다.
답변2
top
ps
프로세스의 대화형 및 업데이트된 변형을 표시하기 위해 만들어졌습니다. 여기에서 명령을 사용하는 것이 더 쉽고 자연스럽습니다 ps
. 예를 들어, 상위 프로세스 정보의 경우:
ps -ejf > top.txt
또는 사용자의 경우
ps -ejf | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt
또는 프로세스 트리의 상위/하위를 트리 형식으로 시각화합니다.
ps auxfww > top.txt
PPID와 단순 트리 형식의 조합:
ps -ejfH | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt