1日より古いデータポイントに対してsar(sysstat)を照会する方法

1日より古いデータポイントに対してsar(sysstat)を照会する方法
  1. 日付と時刻を時刻だけでなく、開始時刻(-s)または終了時刻(-e)として受け入れる「sar」コマンドは表示されません。もしそうなら、 "sar"を照会して1日より古い日付と時刻のデータポイントを取得するにはどうすればよいですか(-fはここでは役に立ちません)。 "sar"コマンドの出力には、時間と分単位の時間だけでなく、データポイントの日付値も必要です。
  2. sysstatがpaデータファイルを毎日分割するのを見ました。単一のpaファイルから毎週sysstat(sa1 / sa2)データを収集するようにデフォルトのsysstat cronエントリを変更できますか?

システム状態の設定:

cat /etc/sysconfig/sysstat
# sysstat-9.0.4 configuration file.

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=7

# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=10

# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"

sysstat cronエントリ:

cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

答え1

これを直接行うことはできません。 sar(systat)と友達はデフォルトで毎日のログ記録に制限されています。 "sadc.c"(sysstat-11.7.2)から:

 485 void setup_file_hdr(int fd)
 486 {
 ...
 507     file_hdr.sa_day         = rectime.tm_mday;
 508     file_hdr.sa_month       = rectime.tm_mon;
 509     file_hdr.sa_year        = rectime.tm_year;

したがって、ファイルヘッダーには1日しか含まれません。

個人記録の形式はやや説得力がありません。 「sa.h」から:

 604 struct record_header {
 ...
 617     /*
 618      * Timestamp: Hour (0-23), minute (0-59) and second (0-59).
 619      * Used to determine TRUE time (immutable, non locale dependent time).
 620      */
 621     unsigned char hour;
 622     unsigned char minute;
 623     unsigned char second;

ただし、構造には1/100秒単位の機械稼働時間とエポックから経過した時間(秒)も含まれています。値がどのように使用されるかを確認するには、より多くの操作を実行する必要があります(これは実行しません)、これは証拠ではなくヒントに近いです。

関連情報