[linux]記賬工具-監(jiān)控用戶活動
前言
記賬工具可以提供諸如 Linux 系統(tǒng)中的連接、已執(zhí)行的程序以及系統(tǒng)資源的使用等有底系統(tǒng)使用信息。這些記賬工具可以通過 psacct 或 acct 軟件包安裝。
psacct 和 acct 實際上是相同的。在基于 RPM 的系統(tǒng)中,它以 psacct 的形式存在;而在基于 DEB 的系統(tǒng)中,它作為 acct 提供。
安裝
大多流行的Linux發(fā)行版中都有 psacct或acct,例如debian中安裝:
sudo apt install -y acct
啟動
在 debian 上,acct 安裝后就會被啟動并設置為自動啟動,可以通過以下命令查看
sudo systemctl status acct
如果沒有啟動,可以用如下命令啟動
sudo systemctl start acct
sudo systemctl enable acct
使用
acct 軟件包包含以下用來監(jiān)測用戶和進程活動的工具:
- ac - 提供用戶登錄時間的統(tǒng)計信息。
- lastcomm - 展示先前執(zhí)行過的命令的信息。
- accton - 開啟或關閉進程記賬。
- dump-acct - 把 accton 的輸出文件轉(zhuǎn)化為易讀的格式。
- dump-utmp - 以易讀的方式打印 utmp 文件。
- sa - 匯總信息,關于先前執(zhí)行的命令。
ac
ac 工具可以為你提供以小時為單位的連接時間報告,這樣你就能知道用戶或一組用戶連接到系統(tǒng)的時長。
# 展示所有用戶的總連接時間
ac
# 按日期排序所有用戶的總連接時間
ac -d
# 獲取各個用戶的總連接時間
ac -p
# 獲取 rainux 用戶的總連接時間
ac rainux
lastcomm
lastcomm 工具用于列出過去執(zhí)行過的命令,它會按執(zhí)行的最近程度將命令列在前面。
# 展示過去執(zhí)行的命令
sudo lastcomm
# 展示特定用戶過去執(zhí)行的命令
sudo lastcomm username
# 展示特定命令過去被執(zhí)行的次數(shù)
sudo lastcomm git
sa
sa 實用程序?qū)⒖偨Y(jié)關于先前執(zhí)行的命令的信息。(可能需要使用絕對路徑才能使用)
# 打印所有命令的總結(jié)
sudo /usr/sbin/sa
示例輸出。每一行代表一個命令(或命令組)的統(tǒng)計匯總。第一列為該命令被執(zhí)行的總次數(shù)。第二列為該命令總實際時間(real time, 從開始到結(jié)束,包括等待IO、睡眠等),單位分鐘。第三列為總CPU時間(實際占用CPU的時間),單位為分鐘。第四列為平均IO操作數(shù)(average io operations, 通常為 0,除非系統(tǒng)啟用了詳細 I/O 統(tǒng)計)。第五列為平均內(nèi)存占用,這是RSS(平均駐留集)的近似值。第六列為命令名,帶*表示該命令是以 SUID/SGID 方式運行的(即提權(quán)執(zhí)行)。
第一行為匯總行
sudo /usr/sbin/sa
1783 314.68re 0.02cp 0avio 2791k
15 1.12re 0.02cp 0avio 3223k ***other*
63 6.84re 0.00cp 0avio 40741k postgres*
7 305.02re 0.00cp 0avio 0k kworker/dying*
2 0.06re 0.00cp 0avio 4114k systemctl
4 0.11re 0.00cp 0avio 2335k dpkg
739 0.04re 0.00cp 0avio 645k sh
231 0.00re 0.00cp 0avio 1368k cat
230 0.00re 0.00cp 0avio 1639k awk
133 0.00re 0.00cp 0avio 1617k grep
72 0.00re 0.00cp 0avio 1908k lsblk
48 0.00re 0.00cp 0avio 2488k ps
24 0.00re 0.00cp 0avio 1370k wc
24 0.00re 0.00cp 0avio 645k trystart.sh*
19 0.01re 0.00cp 0avio 738k install-info
19 0.00re 0.00cp 0avio 835k gzip
15 0.00re 0.00cp 0avio 1652k cron*
14 0.00re 0.00cp 0avio 1366k flock
12 0.00re 0.00cp 0avio 1734k start.sh
12 0.00re 0.00cp 0avio 645k trystart.sh
12 0.00re 0.00cp 0avio 1734k start.sh*
12 0.00re 0.00cp 0avio 1373k chmod
12 0.00re 0.00cp 0avio 1367k dirname
12 0.00re 0.00cp 0avio 1367k whoami
11 0.00re 0.00cp 0avio 620k ac
8 0.32re 0.00cp 0avio 2299k sudo
7 1.12re 0.00cp 0avio 2292k git
5 0.01re 0.00cp 0avio 1365k whereis
5 0.00re 0.00cp 0avio 925k lastcomm
4 0.00re 0.00cp 0avio 850k iptables
3 0.00re 0.00cp 0avio 2125k bash*
3 0.00re 0.00cp 0avio 645k which
2 0.04re 0.00cp 0avio 3484k ssh
2 0.00re 0.00cp 0avio 204544k YDService
2 0.00re 0.00cp 0avio 629k rm
打印基于每個用戶的進程數(shù)量和 CPU 分鐘數(shù)
sudo /usr/sbin/sa -m
dump-acct和dump-utmp
dump-acct 實用工具將 accton 格式的輸出文件顯示為人類可讀的格式。
dump-acct /var/log/account/pacct
dump-utmp 將 utmp 文件顯示為人類可讀的格式。
dump-utmp /var/run/utmp
accton
accton 命令將允許你開啟或關閉記賬。
# 開啟
accton on
# 關閉
accton off
本文來自博客園,作者:花酒鋤作田,轉(zhuǎn)載請注明原文鏈接:http://www.rzrgm.cn/XY-Heruo/p/19188509

浙公網(wǎng)安備 33010602011771號