"top" 명령 출력에 타임스탬프 추가

"top" 명령 출력에 타임스탬프 추가

"상단"에서 일부 성능 지표를 추출하여 파일에 저장하고 있습니다.

top -b | grep 'tesseract\|node\|java\|beam.smp\|dockerd' > testm.txt

그래서 매초마다 다음 출력을 얻습니다.

   535 rabbitmq  20   0 1246756 128432   5536 S   1.3  3.4 618:33.41 beam.smp
   589 root      20   0  351040  47836  25740 S   0.0  1.3  12:38.72 dockerd
  1980 root      20   0 2236796  36844  15980 S   0.0  1.0   6:11.59 java
  1995 root      20   0 1766008 241428  21844 S   0.0  6.4  11:26.85 java
 29965 root      20   0 1107460  63732  19328 S   0.0  1.7   0:01.69 node

이 스크립트를 오랫동안 실행하면 임의의 데이터 덩어리가 언제 수집되었는지 알아내는 것이 불가능하기 때문에 이 출력의 각 덩어리에 타임스탬프를 추가하는 방법이 궁금합니다.

미리 감사드립니다!

답변1

grep 대신 필터링을 사용하면 top -b단일 실행의 상위 출력에 대한 각 줄의 타임스탬프를 쉽게 찍을 수 있습니다.awkawk시간 기능 내장, 출력에 주입할 수 있습니다.

저는 이러한 프로그램을 대부분 실행하지 않았기 때문에 bash예제의 필터에 및 를 추가했습니다...ssh

간단한 epoch 타임스탬프(1970년 1월 1일 이후의 초 수)를 사용하여 이 작업을 수행할 수 있습니다.

top -b | awk '/bash|ssh|tesseract|node|java|beam.smp|dockerd/ {print systime(), $0}'

어느 것이 더 작게 저장되고 더 깨끗해 보이는지:

bash-$ top -b | awk '/bash|ssh|tesseract|node|java|beam.smp|dockerd/ {print systime(), $0}'
1490018813  1229 root      20   0  891536  42868  28348 S   0.0  0.3  15:07.30 dockerd
1490018813  1240 root      20   0   65520   6208   5488 S   0.0  0.0   0:00.01 sshd
1490018813  2666 tim       20   0   24336   7136   3492 S   0.0  0.0   0:00.05 bash
1490018813  2710 tim       20   0   46984   5324   4644 S   0.0  0.0   0:09.08 ssh
1490018813  2783 root      20   0  105988   7184   6184 S   0.0  0.0   0:00.00 sshd
1490018813  2804 root      20   0  105988   7404   6408 S   0.0  0.0   0:00.00 sshd

또는 이해하기 쉬운 타임스탬프를 사용하세요.

top -b | awk '/bash|ssh|tesseract|node|java|beam.smp|dockerd/ {print strftime("%Y-%m-%d-%H:%M:%S", systime(), $0}'

이해하기가 더 쉽습니다.

bash-[541]$ top -b -n 3 | awk '/ssh|bash|java|dockerd/ {print strftime("%Y-%m-%d-%H:%M:%S", systime()), $0}'
2017-03-20-10:04:23  1229 root      20   0  891536  42868  28348 S   0.0  0.3  15:07.24 dockerd
2017-03-20-10:04:23  1240 root      20   0   65520   6208   5488 S   0.0  0.0   0:00.01 sshd
2017-03-20-10:04:23  2666 tim       20   0   24336   7136   3492 S   0.0  0.0   0:00.05 bash
2017-03-20-10:04:23  2710 tim       20   0   46984   5324   4644 S   0.0  0.0   0:09.08 ssh
2017-03-20-10:04:23  2783 root      20   0  105988   7184   6184 S   0.0  0.0   0:00.00 sshd
2017-03-20-10:04:23  2804 root      20   0  105988   7404   6408 S   0.0  0.0   0:00.00 sshd
2017-03-20-10:04:23  2909 tim       20   0  105988   5072   4072 S   0.0  0.0   0:00.20 sshd
2017-03-20-10:04:23  2931 tim       20   0  105988   4252   3224 S   0.0  0.0   0:00.00 sshd

관련 정보