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 <[email protected]></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><</code><code>file</code><code>>] [--strict-match] [--print-controls]</code>
<code> </code><code>[--user <name>] [--</code><code>tty</code> <code><name>] [--</code><code>command</code> <code><name>] [--debug]</code>
<code> </code><code>[--show-paging] [--ahz <freq>] [--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,如需轉載請自行聯系原作者