epoch 형식으로 sadf에 시간을 표시하는 방법

epoch 형식으로 sadf에 시간을 표시하는 방법

우분투와 Centos 사이에서 Sadf를 사용하는 데 문제가 있습니다. 문제는 날짜가 둘 다 표시되는 방식입니다.

우분투:

root@db1:/usr/local/nagios/libexec/nrpe_local# sadf | head -10
db1.oas3.realmedia.xstrat.us  300   2014-05-15 03-05-01 UTC all     %%user  0.14
db1.oas3.realmedia.xstrat.us  300   2014-05-15 03-05-01 UTC all     %%nice  0.00

센토스:

[root@ui1 jboss]# sadf | head -5
ui1.oas3.realmedia.xstrat.us    595     1400123401      all     %user   1.00
ui1.oas3.realmedia.xstrat.us    595     1400123401      all     %nice   0.00

Centos에서 (에포크 시간)을 표시하므로 우분투에서도 시간을 표시해야 합니다.

이 문제를 해결하는 구성 파일을 찾지 못했습니다.

답변1

맨페이지를 확인하여 어떤 옵션이 에포크 시간 이후의 시간(초)을 표시하는지 정확히 확인해야 합니다. sadf버전마다 차이가 있습니다 sysstat.

내 Ubuntu 12.04.4 LTS 사용:

$ sadf -V
sysstat version 10.0.3
(C) Sebastien Godard (sysstat <at> orange.fr)

이 버전에서는 에포크 시간을 표시하는 옵션은 다음과 같습니다 -T.

-T     Display timestamp (UTC - Coordinated Universal Time) in  seconds
       from the epoch.

하지만 함께시스템 상태 8.1.2-2, 이 옵션은 입니다 -D.

-D     This  option  is  equivalent to option -d below, except that the
       timestamp  is  always  expressed  in  seconds  since  the  epoch
       (00:00:00 UTC 01/01/1970).

답변2

우분투에서 나에게 도움이 된 옵션은 -T였습니다.

root@db1:/usr/local/nagios/libexec/nrpe_local# sadf -T | head -10 db1.oas3.realmedia.xstrat.us 300 1400123101 all %%user 0.14 db1.oas3.realmedia.xstrat.us 300 1400123101 all %%nice 0.00

감사합니다!

답변3

이상한 이유로 Gnouc에서 제안한 플래그가 시스템에 존재하지 않는 경우 언제든지 이를 사용하여 출력을 date구문 분석 하고 에포크 시간으로 변환할 수 있습니다.sadf

$ sadf | perl -plae '/.+? .+? (.+?) (.+?)/; $d=$1; $t=$2; $d=~s/-/\//g; 
                    $t=~s/-/:/g; $k=`date -d "$d $t $F[4]" +%s`; chomp($k); 
                    s/$F[2] $F[3] $F[4]/$k/'
db1.oas3.realmedia.xstrat.us  300   1400205600 all     %%user  0.14
db1.oas3.realmedia.xstrat.us  300   1400205600 all     %%nice  0.00

또는 형식을 완전히 유지할 필요는 없지만 일부 공백이 손실될 수 있는 경우:

$ sadf | while read a b date time zone rest; do 
    date=$(date -d "${date//-//} ${time//-/:} $zone" +%s); 
    printf "%s %s %s %s\n" "$a" "$b" "$date" "$rest"; 
 done
db1.oas3.realmedia.xstrat.us 300 1400123101 all     %%user  0.14
db1.oas3.realmedia.xstrat.us 300 1400123101 all     %%nice  0.00

관련 정보