atop 1.23 데이터 파일에서 전체 명령줄을 추출할 수 있나요?

atop 1.23 데이터 파일에서 전체 명령줄을 추출할 수 있나요?

내 프로덕션 서버에는atop버전 1.23, 이 파일로 작성된 데이터 파일이 있고 그 파일에서 프로세스의 전체 명령줄을 추출해야 합니다.

안타깝게도:

  • 이 버전은 atop디스플레이의 80열 이후의 데이터를 표시하지 않습니다.
  • 가로 스크롤은 1.27에서만 도입되었습니다.
  • 새 버전은 이전 버전에서 작성된 데이터 파일 읽기를 거부합니다.
  • 파일 자체가 압축되어 있어 단순 strings검색이 되지 않습니다

내 데이터 파일에서 전체 명령줄을 복구할 수 있는 방법이 있나요?

답변1

편집하다. 매뉴얼 페이지를 확인한 후 전체 명령줄을 얻을 수 있는 것 같습니다.

atop -r /var/log/atop.log -P PRG

압축 파일에서 데이터를 추출하는 몇 가지 일반적인 방법은 다음과 같습니다.

다음 명령을 사용하여 최상위 로그 파일에서 데이터를 추출할 수 있습니다.

xxd -p < /var/log/atop.log |
  fold -w4 |
  awk -v cmd='xxd -r -p | zlib-flate -uncompress | strings' '
    /789c/{if (x) close(cmd); x=1}; x {print | cmd}' |
  grep your-command

아이디어는 zlib 헤더( 로 시작 789c)를 감지하여 에 전달하는 것입니다 zlib-flate -uncompress. 완벽하다는 보장도 없고 가장 효율적인 방법도 아니지만 제게는 효과적이었습니다.

대체 zlip-flate -uncompress(일부qpdf)에는 openssl zlib -d및 가 포함됩니다 pigz -zd.

답변2

최신 버전에는 대화형 명령이 있습니다. c프로세스의 명령줄과 해당 인수를 표시합니다.

이렇게 하려면 아래 그림과 같이 상단 로그(예: /var/log/atop/atop_20191209) 의 위치를 ​​찾아 -r스위치를 사용하여 상단으로 공급합니다. atop -r /var/log/atop/atop_20191209그런 다음 을 눌러 t시간을 앞당깁니다. 시간을 되감으려면 Shift+ 를 누르세요 t.

관련 정보