15초마다 PID와 해당 명령을 기록하는 방법은 무엇입니까?

15초마다 PID와 해당 명령을 기록하는 방법은 무엇입니까?

문제 해결을 위해 15초마다 PID와 해당 명령을 기록하고 이를 텍스트 파일에 쓰고 싶습니다.

원하는 출력: 타임스탬프, PID, 명령

답변1

그러면 필요한 세 가지 열이 제공됩니다.

$ ps -hopid,comm | perl -anle'print time, ", $F[0], $F[1]"'
1541626566, 6496, gedit
1541626566, 7513, bash

범위를 제한하거나 확장할 수 있습니다 ps. 어떤 프로세스가 나열되어 있습니다. 그런 다음 리디렉션을 사용하여 루프에 넣습니다.

while true; do echo x; sleep 15; done > out

선택한 echo x올바른 명령 및 파일 이름으로 바꾸십시오 .out

정보를 생성하는 명령에 대한 요약은 다음과 같습니다.

  • ps -hopid,commps- 분명히 -h헤더 라인을 닫고 -o출력(PID 및 명령)을 나타냅니다.
  • 이것은 Perl 명령인 perl -anle'print time, ", $F[0], $F[1]"'Perl 로 이동합니다 perl. -anle따라서 이러한 플래그는 다음을 의미합니다. a- 입력을 배열에 로드하고, n- 새 줄을 처리하고, l- 각 줄을 처리하고, 마지막으로 e- 숨은 코드를 실행합니다.
  • 이제 코드는 다음과 같습니다 'print time, ", $F[0], $F[1]"'. 먼저 타임스탬프가 인쇄된 다음 입력 자료를 포함하는 배열의 첫 번째 열, 두 번째 열이 인쇄됩니다.

관련 정보