监视Linux用户活动

我认为,对每个想密切监视其服务器/系统上用户活动的Linux/Unix系统管理员来说,psacct或acct是优秀的、必需的应用程序之一。

psacct或acct程序包提供了用于监视进程活动的几项功能。

  • ac命令输出用户登录/退出(连接时间,数小时)的统计信息。
  • lastcomm命令输出用户之前执行的命令的信息。
  • accton命令用于开启/关闭进程会计机制(process accounting)。
  • sa命令用于概述之前执行的命令的信息。
  • last和lastb这两个命令显示了最近登录用户的列表。

安装psacct或acct程序包

psacct或acct都是类似的程序包,两者之间没有太大的区别,但是psacct程序包只适用于基于rpm的发行版,比如RHEL、CentOS和Fedora;而acct程序包适用于Ubuntu、Debian和Linux Mint等发行版。

想在基于rpm的发行版下安装psacct程序包,请运行下列yum命令。

# yum install psacct

想在Ubuntu / Debian / Linux Mint下安装acct程序包,请使用apt-get命令。

$ sudo apt-get install acct

或者

# apt-get install acctStarting psacct or acct service

默认情况下,psacct服务处于禁用模式,你需要在RHEL/CentOS/Fedora系统下手动开启该服务。请使用下列命令,检查服务状态。

# /etc/init.d/psacct statusProcess accounting is disabled.

你看到状态显示为处于禁用状态,不妨使用下列两个命令手动开启该服务。这两个命令将创建一个/var/account/pacct文件,并开启服务。

# chkconfig psacct on # /etc/init.d/psacct start Starting process accounting: [ OK ]

开启服务后,再次检查状态,你会看到状态已被启用,如下所示。

# /etc/init.d/psacct statusProcess accounting is enabled.

在Ubuntu、Debian和Mint系统下,服务已自动启动,你不需要再次启动服务了。

显示用户连接时间的统计信息

没有指定参数的ac命令会基于来自当前wtmp文件的用户登录/退出,显示连接时间(小时)的总统计信息。

# actotal     1814.03

显示每天的用户统计信息

使用ac -d这个命令将输出每天的总登录时间(小时)。

# ac -dSep 17  total        5.23Sep 18  total       15.20Sep 24  total        3.21Sep 25  total        2.27Sep 26  total        2.64Sep 27  total        6.19Oct  1  total        6.41Oct  3  total        2.42Oct  4  total        2.52Oct  5  total        6.11Oct  8  total       12.98Oct  9  total       22.65Oct 11  total       16.18

显示每个用户的时间总数

使用ac -p这个命令将显示每个用户的总登录时间(小时)。

# ac -proot                              1645.18tecmint                            168.96total     1814.14

显示单个用户时间

想得到tecmint这个用户的总登录统计时间(小时),请使用下列命令。

# ac tecminttotal      168.96

显示用户每天的登录时间

下列命令将输出tecmint这个用户的每天总登录时间(小时)。

# ac -d tecmintOct 11  total        8.01Oct 12  total       24.00Oct 15  total       70.50Oct 16  total       23.57Oct 17  total       24.00Oct 18  total       18.70Nov 20  total        0.18

输出所有的帐户活动信息

sa这个命令用于输出诸用户执行的命令的概要情况。

# sa2       9.86re       0.00cp     2466k   sshd*8       1.05re       0.00cp     1064k   man2      10.08re       0.00cp     2562k   sshd12       0.00re       0.00cp     1298k   psacct2       0.00re       0.00cp     1575k   troff14       0.00re       0.00cp      503k   ac10       0.00re       0.00cp     1264k   psacct*10       0.00re       0.00cp      466k   consoletype9       0.00re       0.00cp      509k   sa8       0.02re       0.00cp      769k   udisks-helper-a6       0.00re       0.00cp     1057k   touch6       0.00re       0.00cp      592k   gzip6       0.00re       0.00cp      465k   accton4       1.05re       0.00cp     1264k   sh*4       0.00re       0.00cp     1264k   nroff*2       1.05re       0.00cp     1264k   sh2       1.05re       0.00cp     1120k   less2       0.00re       0.00cp     1346k   groff2       0.00re       0.00cp     1383k   grotty2       0.00re       0.00cp     1053k   mktemp2       0.00re       0.00cp     1030k   iconv2       0.00re       0.00cp     1023k   rm2       0.00re       0.00cp     1020k   cat2       0.00re       0.00cp     1018k   locale2       0.00re       0.00cp      802k   gtbl

其中:

  • 9.86re是"真实时间",以挂钟分钟为单位。
  • 0.01cp是系统/用户时间(以处理器分钟为单位)之和。
  • 2466k是处理器时间平均核心使用,也就是1k单位。
  • sshd命令名称

输出单个的用户信息

想获得单个用户的信息,请使用-u这个选项。

# sa -uroot       0.00 cpu      465k mem acctonroot       0.00 cpu     1057k mem touchroot       0.00 cpu     1298k mem psacctroot       0.00 cpu      466k mem consoletyperoot       0.00 cpu     1264k mem psacct           *root       0.00 cpu     1298k mem psacctroot       0.00 cpu      466k mem consoletyperoot       0.00 cpu     1264k mem psacct           *root       0.00 cpu     1298k mem psacctroot       0.00 cpu      466k mem consoletyperoot       0.00 cpu     1264k mem psacct           *root       0.00 cpu      465k mem acctonroot       0.00 cpu     1057k mem touch

输出进程数量

这个命令输出进程总数和处理器分钟总数。如果你看到这些数字不断增大,那么就要查看系统,分析一下出现了什么状况。

# sa -msshd                                    2       9.86re       0.00cp     2466kroot                                  127      14.29re       0.00cp      909k

输出按百分比排序

sa -c这个命令显示了用户的最高百分比。

# sa -c132  100.00%      24.16re  100.00%       0.01cp  100.00%      923k2    1.52%       9.86re   40.83%       0.00cp   53.33%     2466k   sshd*8    6.06%       1.05re    4.34%       0.00cp   20.00%     1064k   man2    1.52%      10.08re   41.73%       0.00cp   13.33%     2562k   sshd12    9.09%       0.00re    0.01%       0.00cp    6.67%     1298k   psacct2    1.52%       0.00re    0.00%       0.00cp    6.67%     1575k   troff18   13.64%       0.00re    0.00%       0.00cp    0.00%      509k   sa14   10.61%       0.00re    0.00%       0.00cp    0.00%      503k   ac10    7.58%       0.00re    0.00%       0.00cp    0.00%     1264k   psacct*10    7.58%       0.00re    0.00%       0.00cp    0.00%      466k   consoletype8    6.06%       0.02re    0.07%       0.00cp    0.00%      769k   udisks-helper-a6    4.55%       0.00re    0.00%       0.00cp    0.00%     1057k   touch6    4.55%       0.00re    0.00%       0.00cp    0.00%      592k   gzip6    4.55%       0.00re    0.00%       0.00cp    0.00%      465k   accton4    3.03%       1.05re    4.34%       0.00cp    0.00%     1264k   sh*4    3.03%       0.00re    0.00%       0.00cp    0.00%     1264k   nroff*2    1.52%       1.05re    4.34%       0.00cp    0.00%     1264k   sh2    1.52%       1.05re    4.34%       0.00cp    0.00%     1120k   less2    1.52%       0.00re    0.00%       0.00cp    0.00%     1346k   groff2    1.52%       0.00re    0.00%       0.00cp    0.00%     1383k   grotty2    1.52%       0.00re    0.00%       0.00cp    0.00%     1053k   mktempList

用户最近执行的命令

latcomm这个命令用于搜索和显示之前执行的用户命令信息。你还可以搜索单个用户名称的命令。比如说,我们看到了用户(tecmint)执行的命令:

# lastcomm tecmintsu                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56dircolors                tecmint  pts/0      0.00 secs Wed Feb 13 15:56bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56tput                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56tty                     tecmint  pts/0      0.00 secs Wed Feb 13 15:56bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

搜索命令日志

在lastcomm这个命令的帮助下,你能够查看每个命令的单独使用情况。

# lastcomm lsls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

原文链接:http://www.tecmint.com/how-to-monitor-user-activity-with-psacct-or-acct-tools/

##################################################

acct是一个工具包,里面包含有针对用户连接时间、进程执行情况等进行统计的工具。它可以记录用户登录信息。用户所执行的程序,程序执行情况信息等。

  accton:打开或关闭进程统计

  作用:accton命令打开进程统计,如果不带任何参数,即关闭进程统计。

  用法:accton [ -V | --version ] [ -h | --help ] [ filename ]

  主要选项如下。

  — -V,--version:显示ac版本并退出。

  — -h,--help:打印命令概要,并显示系统默认accton文件。

  说明:acct是一个工具包,里面包含有针对用户连接时间、进程执行情况等进行统计的工具。它可以记录用户登录信息。用户所执行的程序,程序执行情况信息等。它包含有下面一些命令。

  — ac:登录账号的简要信息。

  — accton:打开或关闭进程账号记录功能。

  — last:显示曾经登录过的用户。

  — lastcomm:显示已执行过的命令。

  — sa:进程账号记录信息的摘要。

  — dump-utmp:输出utmp文件内容。

  — dump-acct:输出acct或pacct文件内容。

  应用实例如下。

  打开或关闭进程统计。

  在Linux系统中启动进程统计使用accton命令,必须用root身份来运行。accton命令的形式为accton file,file必须事先存在。先使用touch命令创建pacct文件:

  #touch /var/log/pacct

  然后运行:

  # accton /var/log/pacct

  一旦accton被激活,就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计,可以使用不带任何参数的accton命令:

  # accton

lastcomm:显示以前使用过的命令的信息

  作用:accton用来启动进程记录,这样就会把所有的命令都记录到一个指定的文件中,而lastcomm就是用来查看这个文件的,以方便系统管理。

  用法:lastcomm [选项]... [文件]...

  主要选项如下。

  — -strict-match:精确匹配每一列

  — --user name:只显示指定用户的命令记录。

  — --command name:只显示指定命令的记录。

  — --tty name:只显示在指定终端上运行的命令。

  — -f filename:指定一个命令记录文件来代替默认文件——acct。

  — --debug:打印其他内核信息。

  — -V,--version:打印版本。

  — -h,--help:打印概要和系统默认统计文件(Linux里面的默认文件多是/var/log/pacct 和/var/account/pacct)。

  应用实例如下。

  显示曾经执行过的命令,如图4-1所示。

  # lastcomm -f /var/log/pacct

  图 显示曾经执行过的命令

  每一项包含如下的信息。

  — 进程的命令。

  — 标志,由系统标准统计进程完成。

  Ø S:命令由超级用户运行。

  Ø F:命令由子进程运行,没有使用exec的子进程。

  Ø C:命令运行在PDP-11兼容模式下。

  Ø D:命令终止时产生core文件。

  Ø X:命令由信号SIGTERM终止。

  — 运行命令的用户名。

  — 进程使用的系统时间。

psacct or acct in linux相关推荐

  1. 使用psacct或acct工具监控Linux用户活动

    使用psacct或acct工具监控Linux用户活动 1. 概述 2. 在Linux中安装psacct 或acct 包 3. 使用psacct 3.1 显示用户连接时间统计(ac) 3.2 打印用户执 ...

  2. 如何借助psacct或acct工具监视用户活动

    监视Linux用户活动 我认为,对每个想密切监视其服务器/系统上用户活动的Linux/Unix系统管理员来说,psacct或acct是优秀的.必需的应用程序之一. psacct或acct程序包提供了用 ...

  3. 安装psacct或acct程序包

    监视Linux用户活动 我认为,对每个想密切监视其服务器/系统上用户活动的Linux/Unix系统管理员来说,psacct或acct是优秀的.必需的应用程序之一. psacct或acct程序包提供了用 ...

  4. Linux性能监控和调试

    作者:forest 来自:www.linuxstory.org 0 题记 对于每个互联网研发人员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作. 为此,我们总结了非常有用的并且最常 ...

  5. 系统管理员都要知道的 30 个 Linux 系统监控工具

    1. top - 进程活动监控命令 top 命令会显示 Linux 的进程.它提供了一个运行中系统的实时动态视图,即实际的进程活动.默认情况下,它显示在服务器上运行的 CPU 占用率最高的任务,并且每 ...

  6. 监控 Linux 性能的 18 个命令行工具

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们 ...

  7. 20个命令行工具监控 Linux 系统性能(转载)

    1. top - Linux 系统进程监控 top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具.Top 命令可以 ...

  8. 20个常用Linux性能监控工具/命令

    20个常用Linux性能监控工具/命令 对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具.这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因 ...

  9. linux ps 只显示端口,这30个Linux系统监控工具,每个系统管理员都应该知道

    是否需要监控Linux服务器的性能?试试这些内置的命令和附加工具.大多数发行版都附带了大量的Linux监控工具,这些工具提供了可以用来获取系统活动信息的指标.你可以使用这些工具来查找性能问题的可能原因 ...

最新文章

  1. 2.1 . df 命令和du命令
  2. spring 判断非空提示断言
  3. Backbone与服务器接口之RESTful
  4. CTFshow 信息收集 web6
  5. GitHub提速方法大揭秘,10M速度使用无忧
  6. macos下npm install 报错: fsevents .... permission denined
  7. 学习Jsoup(一)
  8. Windows Phone 8初学者开发—第18部分:在页面间导航
  9. 远程连接Linux密码特殊字符,[转载]linux shell 命令_特殊字符
  10. 【路径规划】基于matlab人工蜂群优化粒子群算法求解最短路径规划问题【含Matlab源码 124期】
  11. EasyCVR接入Ehome协议设备PS流解析失败?一文分析PS流解析注意点
  12. 从哥德巴赫说开去(3)
  13. cad文件管理服务器,cad文件管理基本格式
  14. 用 Python 挪车、管理农场,这届 PyCon 有点香
  15. 《算法竞赛进阶指南(by 李煜东)》习题题解 集合
  16. Greenplum6 JDBC insert性能媲美MySQL
  17. 软件使用说明网站+IT新闻评论
  18. 四台主机模拟实现静态路由
  19. 阿里云盘最新邀请码,某度颤抖吧(持续更新中~)
  20. 性能测试总结(performance testing)(一)

热门文章

  1. 做项目应该怎样选择适合你的推广渠道?
  2. 北邮大二大物期末_洛阳理工学院大学物理学(北京邮电大学版)期末考试题1
  3. 村规(春天花花同学会)
  4. python神经网络代码
  5. 最具影响力的十大扫地机器人品牌
  6. 10-10 常见单词 : 访问项目Gutenberg(http://gutenberg.org/ ) , 并找一些你想分析的图书。 下载这些作品的文本文件或将浏览器中的原始文本复制到文本文件中。 你可
  7. 牛客网产品笔试题刷题打卡——需求分析
  8. postman 使用
  9. PCB设计——购买元器件出现的问题
  10. 精品软件 推荐 Able2Extract Professional 多功能的 PDF 转换器