在系统管理中,有时需要记录用户对资源的消费情况,作为对用户账号收取费用的依据。这些日志也可以用于安全目的,提供有关系统活动的有价值的信息。

Linux 系统提供了一个名为 psacct 的软件包,可以实现记帐的功能。

一、psacct 包检测

首先,我们要确保当前系统是否已经安装了 psacct 包,可通过如下命令进行查看;

# rpm -qa | grep psacct
psacct-6.3.2-63.el6_3.3.x86_64

二、psacct 服务开启与关闭

为了开启该记帐功能,需执行 /etc/rc.d/init.d/psacct start 或者service psacct start 命令;

# /etc/rc.d/init.d/psacct start
开启进程记帐: [确定]
# service psacct start
开启进程记帐: [确定]

若要停止该记帐功能,可执行 /etc/rc.d/init.d/psacct stop 或者service psacct stop 命令;

# service psacct stop
关闭进程记帐: [确定]
# /etc/rc.d/init.d/psacct stop
关闭进程记帐: [确定]

三、相关的配置文件

当记帐功能开启后,有关的用户和进程的记帐信息将会记录在日志文件 /var/account/pacct 中。

# vi /var/account/pacct

psacct 软件包安装时在 /etc/logrotate.d 目录安装了转储配置文件,且文件名也是 psacct 。有了记帐日志后,psacct 软件包提供的命令就可以使用了。当用户执行过的命令会被 psacct 记录,日志将存放在 /var/account/pacct 文件中。

# cd /etc/logrotate.d
# ls
cups dracut httpd ppp psacct sssd syslog wpa_supplicant yum
# cat psacct
# Logrotate file for psacct RPM/var/account/pacct {#prerotate loses accounting records, let's no
# prerotate
# /usr/sbin/accton
# endscript
compress
delaycompress
notifempty
daily
rotate 31
create 0600 root root
postrotate
/usr/sbin/accton /var/account/pacct
endscript
}

四、lastcomm

利用 lastcomm 命令可以输出日志中的更多详细的信息,将显示所有被用户所运行过的进程和命令。

# lastcomm | more
pickup S postfix __ 0.00 secs Wed May 29 00:44
crond SF root __ 0.00 secs Wed May 29 02:20
sadc S root __ 0.00 secs Wed May 29 02:20
unix_chkpwd S root __ 0.00 secs Wed May 29 02:20
grep root pts/1 0.02 secs Wed May 29 02:16
rpm root pts/1 2.70 secs Wed May 29 02:16
  • 第一列:启动进程的命令名。
  • 第二列:标志。
  • 第三列:执行进程的用户名。
  • 第四列:命令在哪个终端执行的。
  • 第五列:执行进程所花费的时间。
  • 第六列:在什么日期和时间执行的进程。

五、lastcomm 常用命令选项参数

  • user :列出指定用户名的记录;
  • –command :列出与指定命令相同的记录;
  • –tty :列出指定终端上执行的进程
  • -f :从指定的文件中读取数据;
  • –strict-match:严格的匹配;

六、sa

sa 命令位于 /usr/bin 目录下,它可以将之前所执行过的命令占用了多少 CPU 信息进行统计出来,并提供系统资源的消费信息。同时对于这一查询可以更方便查出具体哪些占用 CPU 信息占比高等相关显示。

# cd /usr/bin
# ll | grep sa
-rwxr-xr-x. 1 root root 27008 11月 23 2013 abrt-action-save-package-data
-rwxr-xr-x. 1 root root 27247 9月 12 2012 alsa-info
lrwxrwxrwx. 1 root root 9 6月 4 2016 alsa-info.sh -> alsa-info
-rwxr-xr-x. 1 root root 1558624 2月 22 2013 alsaloop
-rwxr-xr-x. 1 root root 76888 2月 22 2013 alsamixer

执行命令 sa | more 命令进行输出所运行过的进程所占用的 CPU 时间信息。

# sa | more
544 2430102.76re 1.50cp 18238k
13 21.50re 1.38cp 23924k ***other*
4 0.43re 0.06cp 88788k yumBackend.py
2 19191.34re 0.03cp 17840k sshd
9 4699.73re 0.01cp 19047k packagekitd
4 15410.99re 0.00cp 27092k bash
  • 第一列的数值:544 该数值的意思是进程执行的次数;
  • 第二列的数值:2430102.76re 该数值的意思是“真实”的 CPU 时间;
  • 第三列的数值:1.50cp 该数值的意思是系统和用户 CPU 时间的总和;
  • 第四列的数值:18238k 该数值的意思是内核所占用的平均 CPU 时间,以 1K 个 CPU 单位时间为单位;
  • 第五列的结果:yumBackend.py 该输出的结果为启动进程的命令名称;

七、sa 常用参数选项

  • -u:列出执行进程的用户;
# sa -u | head -5
root 0.00 cpu 981k mem accton
root 0.04 cpu 28384k mem logrotate
root 0.00 cpu 26528k mem logrotate
root 0.00 cpu 26480k mem awk
root 0.00 cpu 25232k mem basename
  • -l:将系统时间和用户时间分别输出;
# sa -l | head -5
628 15590.86re 0.00u 0.07s 21476k
12 9985.38re 0.00u 0.05s 24410k ***other*
60 0.13re 0.00u 0.01s 28050k find
11 5597.53re 0.00u 0.00s 18976k packagekitd
78 0.06re 0.00u 0.00s 29344k crond*
  • -m:汇总每个用户占用的 CPU 时间;
[root@localhost bin]# sa -m
628 15590.86re 0.07cp 21476k
root 610 15585.44re 0.07cp 21730k
postfix 7 5.39re 0.00cp 20336k
dbus 11 0.03re 0.00cp 8148k
  • 命令 man sa 手册 SYNOPSIS 参数选项详情;

八、ac

ac 命令在 /usr/bin 目录下,日志文件在 /var/log/wtmp
主要统计用户在线时间

# ll | grep ac | head -3
-rwxr-xr-x. 1 root root 13920 11月 23 2013 abrt-action-analyze-backtrace
-rwxr-xr-x. 1 root root 12360 11月 23 2013 abrt-action-analyze-c
-rwxr-xr-x. 1 root root 1313 11月 23 2013 abrt-action-analyze-ccpp-local

九、ac 常用参数选项

  • 不加任何参数时,只显示所有用户总的在线时间;
# ac
total 246.52
  • -d:列出每天所有用户的总在线时间;
# ac -d
Jun 4 total 43.92
Jun 5 total 72.09
May 27 total 19.28
May 28 total 101.02
Today total 10.21
  • -p:列出每个用户的总在线时间;
# ac -p
root 246.53
total 246.53
  • 若查看更多参数选项,可执行命令“man ac”来查看关于命令 ac 的手册详情;

  • 需要注意的是:以上表示的时间的数字均以小时为单位计算;

原创不易,如果你觉得这篇文章对你有点用的话,麻烦你为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!

WOC!原来 Linux 终端下居然还有进程记帐功能?!相关推荐

  1. 如何在Linux平台下重定向running进程

    如何在Linux平台下重定向running进程 一.简介   本文通过一个具体的示例,介绍在Linux平台下重定向running(运行中)进程的几种方法.借助此方法,用户能够将进行打印重定向到需要的位 ...

  2. linux切换图片的代码,cacaview – Linux终端下将图片转换ASCII Art代码图案

    有时你可能需要终端输出许多图片,那么现在就让我们在Linux终端打开一个新窗口显示图片. cacaview – Linux终端下将图片转换ASCII Art代码图案的命令. Ubuntu下安装命令: ...

  3. linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器

    原标题:你应该还不知道,Linux终端下的 Markdown 文档查看器 现在,Markdown 差不多已经成为技术文档的标准.它可以实现技术文档的快捷写作,以及输出发布.同样都是标记语言,但Mark ...

  4. 神奇 | 神奇,原来 Linux 终端下还有这两种下载文件方式

    " Hi ! 我是小小,今天开始本周的第二篇,本周第二篇,将会着重讲解关于Linux下的两种文件下载方式. 前言 如果你一直使用 Linux 终端,比如在服务器上,如何从终端下载文件,在本篇 ...

  5. window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题

    window 和 linux 环境下杀死tomcat进程--也可以解决其他端口被占用的问题 参考文章: (1)window 和 linux 环境下杀死tomcat进程--也可以解决其他端口被占用的问题 ...

  6. linux能记录日志的终端,如何记录Linux终端下的操作日志

    在Linux终端下,为方便检查操作中可能出现的错误,以及避免屏幕滚屏的限制,我们可以把操作日志记录下来.常用的工具有 screen,script,以及tee等. 1. screen - screen ...

  7. 在linux终端下使用scp与远程windows传输文件

    这几天遇到了个问题,需要在linux终端下往远程windows xp(同一局域网)传输文件. 由于之前在该linux下都是往远程的linux传输文件,而当时使用的是scp.远程切到windows以后, ...

  8. 一些你不知道的好玩的有趣的linux命令 Linux终端下的ASCII艺术

    你知道吗?其实在linux 终端下也是可以玩一些简单的ASCII字符动画.每次提起linux 都觉得害怕,因为那些命令太古板太严肃了.嘿嘿,从现在开始,貌似有点乐趣了哦.当你敲代码敲累了,你可以玩玩这 ...

  9. linux 终端 星球大战,在 Linux 终端下看《星球大战》

    虽然我不能帮你得到一张最新的<星球大战>的电影票,但我可以提供给你一种方式,看星球大战第四集,它是非常早期的<星球大战>电影(1977 年). 不,它不会是高清,也不是蓝光版. ...

最新文章

  1. Java EE---使用Spring框架创建Department小项目
  2. Error in **** : non-numeric argument to binary operator
  3. python 栈和队列_Python实现栈和队列的简单操作方法示例
  4. Microsoft Office Visio
  5. 11 SD配置-企业结构-分配-设置销售范围(Sales Area)
  6. 4.4.2 数值处理
  7. css两列显示,div+css如何控制信息分两列显示?
  8. RTSP/RTP/RTCP协议的区别
  9. 关于单舵轮AGV运动学模型整理笔记
  10. python 计算均值、方差、标准差 Numpy,Pandas
  11. 初级使用xenu,windows10系统安装完无法运行
  12. win7网络不显示共享计算机,Win7电脑已开启共享却找不到设备 局域网显示空白该怎么解决...
  13. 集成测试和单元测试覆盖率合并
  14. 和平精英有了氪金系统,玩家再也不敢开挂了?网友:你到亚服看看
  15. SQLMap用户常用命令——1
  16. nest中文文档_如何将Nest Cam事件记录到Google文档电子表格
  17. SpringMVC视频-佟刚-专题视频课程
  18. 五大最受欢迎的BUG管理系统 .
  19. 产品经理应该学习墨刀还是Axure?
  20. 解决电脑按字母键出现数字的方法

热门文章

  1. STM32F103_IOT物联网开发板学习专栏1
  2. 库克清华演讲:乔布斯弥留之际的一句话
  3. UG许可证错误-96
  4. python 欢迎自己程序编写_卧槽,神操作!一句查询让Python帮忙自己写程序
  5. 2. 代理模式-为别人做嫁衣
  6. 张小二求职记之 单例模式(二)
  7. Java 基本类型与自动装箱、拆箱
  8. 皮卡丘检测器-CNN目标检测入门教程
  9. Bentley 软件公司宣布 2018基础设施年度光辉大奖赛决赛入围者名单
  10. 纽约时报:硅谷企业兵败中国 但硅谷文化已落地生根