天天看點

Linux系統日志管理:(2)程序統計日志

Linux作業系統中有三種主要的日志子系統:

(1)連接配接時間日志

(2)程序統計日志

(3)系統和服務日志

連接配接時間日志和程序統計日志由rsyslog(舊版是syslog)日志服務驅動,系統和服務日志由相對應的網絡服務驅動和管理;

程序統計日志

  程序統計日志可以監控使用者在伺服器上的操作時非常有效,所記錄的操作會存入/var/account/pacct檔案中;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<code>#accton</code>

<code>accton: no arguments</code>

<code>Usage: accton [OPTION] on|off|ACCOUNTING_FILE</code>

<code>Try </code><code>'accton --help'</code> <code>for</code> <code>more</code> <code>information.</code>

<code># accton --help</code>

<code>          </code><code>Turns process accounting on or off, or changes the </code><code>file</code> <code>where this</code>

<code>          </code><code>info is saved.</code>

<code>          </code><code>OPTIONS:</code>

<code>          </code><code>-h, --help       Show help and </code><code>exit</code>

<code>          </code><code>-V, --version    Show version and </code><code>exit</code>

<code>          </code><code>ARGUMENTS:</code>

<code>          </code><code>on               Activate process accounting and use default </code><code>file</code>

<code>          </code><code>off              Deactivate process accounting</code>

<code>          </code><code>ACCOUNTING_FILE  Activate (</code><code>if</code> <code>not active) and save information </code><code>in</code>

<code>          </code><code>this </code><code>file</code>

<code>          </code><code>The system</code><code>'s default process accounting file is '</code><code>/var/account/pacct</code><code>'.</code>

<code>          </code><code>Report bugs to &lt;[email protected]&gt;</code>

(1)啟動程序統計日志情況

<code># accton on</code>

<code>Turning on process accounting, </code><code>file</code> <code>set</code> <code>to the default </code><code>'/var/account/pacct'</code><code>.</code>

(2)顯示程序統計日志情況

<code># lastcomm</code>

<code>ksmtuned          F    root     __         0.00 secs Thu Feb 26 23:05</code>

<code>awk</code>                    <code>root     __         0.00 secs Thu Feb 26 23:05</code>

<code>pgrep                  root     __         0.00 secs Thu Feb 26 23:05</code>

<code>sleep</code>                  <code>root     __         0.00 secs Thu Feb 26 23:04</code>

<code>accton           S     root     pts</code><code>/0</code>      <code>0.00 secs Thu Feb 26 23:04</code>

以最後一行為例:

*指令位

*标志位

 S表示指令有超級管理者執行

 F表示指令有子程式運作,沒有使用EXEC

 C表示指令運作在PDP-11相容環境下

 X表示指令由SIGTREM信号終止

*使用者名

*執行指令的系統

關于lastcomm的用法:

<code># lastcomm --help</code>

<code>Usage: lastcomm [-hpV] [-f </code><code>file</code><code>] [</code><code>command</code><code>] ... [user] ... [terminal] ...</code>

<code>       </code><code>[--forwards] [--</code><code>file</code> <code>&lt;</code><code>file</code><code>&gt;] [--strict-match] [--print-controls]</code>

<code>       </code><code>[--user &lt;name&gt;] [--</code><code>tty</code> <code>&lt;name&gt;] [--</code><code>command</code> <code>&lt;name&gt;] [--debug]</code>

<code>       </code><code>[--show-paging] [--ahz &lt;freq&gt;] [--version] [--help]</code>

<code>The system's default process accounting </code><code>file</code> <code>is </code><code>/var/account/pacct</code><code>.</code>

(3)停止程序統計日志監控

<code># lastcomm off</code>

使用sa指令進行統計

sa指令可以将/var/account/pacct中的資料壓縮到/var/log/savacc(基于指令名稱進行索引統計)和/etc/log/usracc(基于使用者名進行索引統計的)中;

<code># sa -a</code>

<code>    </code><code>4557   50640.33re       1.08cp         0avio     27021k</code>

<code>    </code><code>1      742.55re       0.58cp         0avio    366208k   gnome-shell</code>

<code>    </code><code>7     5199.84re       0.23cp         0avio    105595k   gmain</code>

re表示示例時間,以分鐘為機關;

cp表示系統和使用者的使用時間,以分鐘為機關;

k表示核心占用CPU的平均時間,一個單元大小為KB;

sh表示指令名稱;

avio表示每次執行I/O操作的次數;

sa文法如下:

用法:sa [選項]... [檔案]...

  主要選項如下。

  — -a:列印所有指令的名稱(包括那些帶有不可列印字元的)。

  — -b:将輸出按使用者和系統時間的總和除以調用次數來進行分類。否則,輸出為使用者時間和系統時間之和。

  — -c:将每個指令使用時間列印為相對于所有指令使用時間的百分比。此外,還有使用者、系統和實時。

  — -C:将記賬檔案合并到摘要檔案中。如果摘要檔案為舊用法,則将它轉換為新用法。

  — -d:将輸出按平均磁盤I/O操作數進行分類。

  — -D:将輸出按總的磁盤I/O操作數進行分類和列印。

  — -f:不要強制進行互動式門檻值壓縮。此标志必須與-v标志一起使用。

  — -I:僅讀取原始資料,不讀取摘要檔案。

  — -j:列印每個調用的秒數,而不是每個類别的總的分鐘數。

  — -k:将輸出按平均CPU時間進行分類。

  — -K:将輸出按CPU存儲量整數進行分類和列印。

  — -l:将系統時間和使用者時間分離,而不是組合它們。

  — -m:列印每個使用者的程序數和CPU分鐘數。

  — -n:按調用數對輸出進行分類。

  — -r:将分類的順序倒置。

  — -s:将記賬檔案合并到摘要檔案中。

  — -t:列印每個指令的用時與使用者和系統時間和之比。

  — -u:暫挂所有其他标志并且列印每個指令的使用者數字辨別和指令名。

本文轉自 bannerpei 51CTO部落格,原文連結:http://blog.51cto.com/281816327/1615814,如需轉載請自行聯系原作者

繼續閱讀