前言
记账工具可以提供诸如 Linux 系统中的连接、已执行的程序以及系统资源的使用等有底系统使用信息。这些记账工具可以通过 psacct 或 acct 软件包安装。
psacct 和 acct 实际上是相同的。在基于 RPM 的系统中,它以 psacct 的形式存在;而在基于 DEB 的系统中,它作为 acct 提供。
安装
大多流行的Linux发行版中都有 psacct或acct,例如debian中安装:启动
在 debian 上,acct 安装后就会被启动并设置为自动启动,可以通过以下命令查看- sudo systemctl status acct
复制代码 如果没有启动,可以用如下命令启动- sudo systemctl start acct
- sudo systemctl enable acct
复制代码 使用
acct 软件包包含以下用来监测用户和进程活动的工具:
- ac - 提供用户登录时间的统计信息。
- lastcomm - 展示先前执行过的命令的信息。
- accton - 开启或关闭进程记账。
- dump-acct - 把 accton 的输出文件转化为易读的格式。
- dump-utmp - 以易读的方式打印 utmp 文件。
- sa - 汇总信息,关于先前执行的命令。
ac
ac 工具可以为你提供以小时为单位的连接时间报告,这样你就能知道用户或一组用户连接到系统的时长。- # 展示所有用户的总连接时间
- ac
- # 按日期排序所有用户的总连接时间
- ac -d
- # 获取各个用户的总连接时间
- ac -p
- # 获取 rainux 用户的总连接时间
- ac rainux
复制代码 lastcomm
lastcomm 工具用于列出过去执行过的命令,它会按执行的最近程度将命令列在前面。- # 展示过去执行的命令
- sudo lastcomm
- # 展示特定用户过去执行的命令
- sudo lastcomm username
- # 展示特定命令过去被执行的次数
- sudo lastcomm git
复制代码 sa
sa 实用程序将总结关于先前执行的命令的信息。(可能需要使用绝对路径才能使用)- # 打印所有命令的总结
- sudo /usr/sbin/sa
复制代码 示例输出。每一行代表一个命令(或命令组)的统计汇总。第一列为该命令被执行的总次数。第二列为该命令总实际时间(real time, 从开始到结束,包括等待IO、睡眠等),单位分钟。第三列为总CPU时间(实际占用CPU的时间),单位为分钟。第四列为平均IO操作数(average io operations, 通常为 0,除非系统启用了详细 I/O 统计)。第五列为平均内存占用,这是RSS(平均驻留集)的近似值。第六列为命令名,带*表示该命令是以 SUID/SGID 方式运行的(即提权执行)。
第一行为汇总行- 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
复制代码 打印基于每个用户的进程数量和 CPU 分钟数dump-acct和dump-utmp
dump-acct 实用工具将 accton 格式的输出文件显示为人类可读的格式。- dump-acct /var/log/account/pacct
复制代码 dump-utmp 将 utmp 文件显示为人类可读的格式。accton
accton 命令将允许你开启或关闭记账。- # 开启
- accton on
- # 关闭
- accton off
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|