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

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. 微信小程序日期相减得出天数
  2. Redis介绍 Java客户端操作Redis
  3. 线性代数笔记:Khatri-Rao积
  4. [vue插件]基于vue2.x的电商图片放大镜插件
  5. Servlet快速入门和工作原理
  6. LeetCode 109. Convert Sorted List to Binary Search Tree
  7. JDK动态代理执行过程分析
  8. 公司欠薪,一定要书面督促或仲裁后,再离职
  9. CVPR 2021 预讲 · 华为诺亚专场,5 篇精华报告,覆盖NAS、蒸馏、检测和降噪
  10. 计算机管理十大突出问题,TPM设备管理十大问题
  11. 基于STM32单片机的智能药盒带语音播报原理图程序
  12. 微生物qPCR定量检测
  13. 长安十二时辰大结局一段时间了
  14. 飞腾CPU体系结构(九)
  15. STM8S自学笔记之利用库函数点亮一个LED
  16. Linux命令·traceroute
  17. 基于G.1070的视频质量无参考打分集成回顾
  18. 算法分析与设计(VC问题团问题独立集问题)
  19. 复习JavaEE笔记
  20. 阅读Skeleton.css源码,改善睡眠质量(尽管它只有419行代码)

热门文章

  1. Java很难找工作了?
  2. 自动水位雨量一体站介绍
  3. Mindquantum实现变分量子奇异值分解
  4. Vue Router官网
  5. 日本語システム:变更电脑ip
  6. 单片机实验笔记(汇编、Proteus仿真)
  7. SGU 103 Traffic Lights
  8. php分析抓取视频网站视频链接与截图[zz]
  9. 站在工业互联网安全的风口,六方云借助CRM实现业务数字化管理
  10. 请大神帮我看看这是什么问题