如果你进入了这个页面,说明你的Linux磁盘多半已经因为空间不足报警了,而且是/var/account/pacct这个文件导致的var挂载点空间不足。

这个文件的意思:

Linux下有一个记载进程记录的进程psacct,当一个进程终止时,把每个进程向统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。该文件可以通过数据的工具(sa,ac)进行分析。

解决方法:(注意,只有重启审计进程后空间才会真正被释放)

删除/var/account/下的文件

重启审计进程:/etc/init.d/psacct restart

psacct 工具

内容提要

1.
了解 psacct 软件包的组成
2.
掌握 lastcomm 和 sa 命令使用之前的配置方法
3.
掌握 lastcomm 和 sa 命令的使用
4.
掌握 ac 命令的使用
5.
熟悉日志文件 /var/account/pacct 和 /var/log/wtmp 的
滚动配置
psacct 简介

管理员可以使用 psacct 软件包提供的工具监视所有用户执行的命令,包括 CPU 时间和内存占用,实现进程
记帐功能。

psacct 软件包提供了三个进程活动监视工具 : ac, lastcomm和 sa。

accton 用于打开或关闭进程记帐功能,它是运行 lastcomm 和 sa 命令的前提。 accton 命令是一个开关,
运行一次将打开进程记帐功能,再运行一次将关闭进程记帐功能。为了方便管理员使用, CentOS提供一个
init脚本执行 accton命令,您可以使用如下的命令打开或关闭进程记帐功能。

# service psacct start
# service psacct stop

..为避免进程记帐日志文件过大,通常在使用进程记帐功能时才打开,不用时就将其关闭。
..默认情况下, psacct 服务没有打开。若您想在系统启动时就打开进程记帐功能,请执行如下命令:
chkconfig acct on

lastcomm 和 sa 命令默认从进程记帐文件 /var/account/pacct 中读取数据,此文件为二进程文件。同时系
统提供了 /etc/logrotate.d/psacct 脚本用 cron实现进程记帐文件的滚动。

ac 命令从 /var/log/wtmp 文件中读取数据,此文件也为二进程文件。

lastcomm

lastcomm 命令格式

lastcomm命令用于从 /var/account/pacct 搜索并显示以前执行过的命令信息。
命令格式为:

lastcomm [ Command ] [ Username ] [ Terminal ]

lastcomm 命令显示的列表被限制在以下范围:

.
command 参数指定命令。
.
Username参数指定用户执行的命令。
.
Terminal 参数指定由终端发出的命令。
当三者易发生混淆时,可以使用如下的参数格式:

lastcomm [ --command name ] [ --user name ] [ --tty name ]

默认情况下,各个参数之间是“或”的关系,可以使用 ––strict-match参数实现参数表的精确匹
配,即各个参数之间是“与”的关系。

lastcomm 使用举例

1、显示所有记录在 /var/account/pacct 文件中以前执行过的命令信息

# lastcomm
bash S root tty1 0.03 secs Tue Jan 22 12:17
ls crq pts/0 0.00 secs Tue Jan 22 11:49
ac osmond pts/1 0.00 secs Tue Jan 22 10:59
sh F root pts/0 0.00 secs Tue Jan 22 09:50
crond SF root __ 0.01 secs Tue Jan 22 09:50
sadc S root __ 0.01 secs Tue Jan 22 09:50

………………

2、显示 tty1终端上的 root 用户执行的所有命令的信息

# lastcomm tty1 root --strict-match
bash S root tty1 0.03 secs Tue Jan 22 12:17
clear root tty1 0.00 secs Tue Jan 22 12:17
ls root tty1 0.00 secs Tue Jan 22 12:17
bash F root tty1 0.00 secs Tue Jan 22 12:17
id root tty1 0.00 secs Tue Jan 22 12:17

………………

3、显示 pts/1终端上的 osmond 用户执行的名为 ac 的命令的信息

# lastcomm ac osmond pts/1 --strict-match
ac osmond pts/1 0.00 secs Tue Jan 22 10:59
ac osmond pts/1 0.00 secs Tue Jan 22 09:53

lastcomm 输出字段说明

1.命令名
2.当命令执行时记帐设备收集的标志:
.
S ––命令由超级用户执行
.
F ––命令由 fork产生,但是没有 exec(执行)
.
D ––命令终止并生成一个 core(核心)文件
.
X ––命令被 SIGTERM 信号终止
3.运行进程的用户名
4.运行进程的终端
5.这个进程用的 CPU 时间
6.进程开始的时间

sa

sa 的命令格式及输出

sa命令从 /var/account/pacct 原始记帐数据文件中读取信息并进行信息汇总。

sa 命令的显示结果可以包含以下字段:

1. calls ––命令的调用次数。
2.记帐设备收集的信息:
.
re ––实际使用时间(单位为分钟)。
.
cpu ––通常简写为 cp,表示用户和系统时间之和(单位为分钟)。
.
k ––平均 CPU 时间(单元的大小为 1K)。
.
u ––用户 CPU 时间(单位为分钟)。
.
s ––系统 CPU 时间(单位为分钟)。
3. command ––调用的命令。
不带任何参数的 sa 命令,将显示 calls、re、cpu、k 和 command 字段,以 CPU 字段排序。并将只用过
一次的命令放在 ***other类别中显示。

命令格式如下:

sa [ 参数 ]

常用参数:

.
-a : 显示所有命令的名称(包括那些带有不可打印字符的和只用过一次的命令)。
.
-c : 同时显示百分比字段。
.
-l : 将 CPU 时间字段拆分为系统时间和用户时间两个字段显示。
.
-t : 同时显示实际使用时间与 CPU 总时间之比,即 re/cp。
.
-u : 忽略所有其它参数并显示每个命令执行时的 CPU 时间。
.
-m : 显示每个用户的汇总信息。

.
––sort-real-time : 将输出按实际使用时间进行排序。
.
-b : 将输出按用户和系统时间的总和除以调用次数来进行排序,即 cp/calls。
.
-k : 将输出按平均 CPU 时间进行排序。
.
-n : 将输出按命令的调用次数进行排序。
.
-r : 将输出按逆序排列,可与其他排序参数一起使用。

.
-b、-k、-n 和 –– sort-real-time参数确定如何进行输出排序。

..如果在命令行中指定了不止一个排序参数,则只有最后那个参数生效。
sa 使用举例

1、要对 /var/account/pacct 文件命令进行记帐汇总

# sa
1355 3870.84re 0.79cp 778k # 所有命令的汇总行
2 718.17re 0.67cp 542k top

134 0.05re 0.03cp 421k sadc
169 13.12re 0.02cp 1318k crond*
4 0.23re 0.02cp 1082k find
12 0.71re 0.01cp 636k netstat

………………

1 0.00re 0.00cp 925k ***other

2、改变汇总信息的输出列

# 同时显示百分比字段
# sa -c
1356 100.00% 3870.84re 100.00% 0.79cp 100.00% 777k

2 0.15% 718.17re 18.55% 0.67cp 85.45% 542k top134 9.88% 0.05re 0.00% 0.03cp 3.22% 421k sadc
169 12.46% 13.12re 0.34% 0.02cp 2.95% 1318k crond*

4 0.29% 0.23re 0.01% 0.02cp 2.63% 1082k find
12 0.88% 0.71re 0.02% 0.01cp 0.68% 636k netstat

………………
# 将 CPU 时间字段拆分为系统时间和用户时间两个字段显示
# sa -l

1357 3870.84re 0.19u 0.60s 777k

2 718.17re 0.19u 0.49s 542k top
134 0.05re 0.00u 0.03s 421k sadc
169 13.12re 0.00u 0.02s 1318k crond*

4 0.23re 0.00u 0.02s 1082k find
12 0.71re 0.00u 0.00s 636k netstat

………………
# 同时显示实际使用时间与 CPU 总时间之比
# sa -t

1358 3870.84re 0.79cp 4923.7re/cp 777k

2 718.17re 0.67cp 1069.2re/cp 542k top
134 0.05re 0.03cp 1.8re/cp 421k sadc
169 13.12re 0.02cp 566.3re/cp 1318k crond*

4 0.23re 0.02cp 11.0re/cp 1082k find
12 0.71re 0.01cp 133.3re/cp 636k netstat

………………

3、记帐汇总信息进行排序输出

# 按实际使用时间排序
# sa --sort-real-time

1362 3870.85re 0.79cp 776k
2 2960.04re 0.00cp 507k login
2 718.17re 0.67cp 542k top
4 145.72re 0.00cp 1037k info

170 13.12re 0.02cp 1318k crond*

………………

# 按CPU时间除以调用次数排序
# sa -b

1361 3870.85re 0.79cp 777k
2 718.17re 0.67cp 542k top
4 0.23re 0.02cp 1082k find
2 0.45re 0.00cp 1240k ntsysv
4 0.65re 0.00cp 1142k bash

………………

# 按平均 CPU 时间排序
# sa -k

1363 3870.85re 0.79cp 776k
10 0.02re 0.00cp 2221k rpmq
12 12.28re 0.00cp 2008k sendmail
12 0.01re 0.00cp 1465k troff

170 13.12re 0.02cp 1318k crond*
12 0.01re 0.00cp 1269k grotty

………………

# 按命令的调用次数排序
# sa -n

1364 3870.85re 0.79cp 776k
170 13.12re 0.02cp 1318k crond*
135 0.05re 0.03cp 421k sadc
118 0.37re 0.00cp 414k sa

56 0.00re 0.00cp 855k bash*
48 0.00re 0.00cp 407k runlevel

………………

# 按命令的调用次数排序(逆序)
# sa -nr

1366 3870.85re 0.79cp 775k
1 0.00re 0.00cp 925k ***other
2 0.00re 0.00cp 441k free
2 0.00re 0.00cp 501k gzip
2 0.00re 0.00cp 919k kbd_mode

………………

4、显示包含用户名的进程汇总信息

# 显示每个用户执行的每个命令的信息
# sa -u
root 0.01 cpu 1125k mem psacct
root 0.01 cpu 1112k mem service
osmond 0.01 cpu 932k mem sar
osmond 0.00 cpu 926k mem iostat
osmond 0.00 cpu 927k mem mpstat
osmond 0.00 cpu 441k mem free
osmond 0.00 cpu 439k mem uptime
osmond 0.01 cpu 1047k mem ps
crq 0.00 cpu 518k mem id
crq 0.00 cpu 605k mem bash *

………………

# 显示每个用户执行命令的汇总信息
# sa -m

1369 3870.85re 0.79cp 775k
root 1091 3693.33re 0.77cp 746k
osmond 224 177.00re 0.02cp 928k
crq 54 0.52re 0.00cp 724k

可以通过查看 re, k, cp/cpu 等字段的值找出可疑的活动。例如:

1.某个用户或某个命令占用了所有的 CPU时间
2.如果某个命令的 CPU 时间和内存使用在不断增加,说明命令存在问题
ac

ac 命令及格式

ac 命令从 /var/log/wtmp 文件中的登录和退出时间记录计算并输出用户的连接时间和总计连接时间。

记帐文件 /var/log/wtmp 由 init和 login维护。 ac 和 login均不生成 /var/log/wtmp 文件。若记帐文件
不存在,则不做记帐工作。

请使用 info accounting命令了解 GNU ac 和其他系统上的 ac 在输出上的不同。

文件 /var/log/wtmp 可能很快就变得非常大,所以默认情况下 CentOS在 /etc/logrotate.conf 中 配置了
此文件的日志滚动。配置片段如下:

/var/log/wtmp {

monthly # 指定日志滚动周期为每月

create 0664 root utmp # 使用指定的文件模式创建新的日志文件

}
rotate 1 # 只保留一个滚动日志备份,即只保留 /var/log/wtmp.1

命令格式:

ac [参数]

常用参数:

.
-d : 为每天输出一个总计时间。

.
-p : 为每个用户输出总计时间,并在最后追加一个所有用户的总计时间。

.
-a : 输出每天的记录,而不忽略没有登录活动的日子。

.
-y : 在显示日期时输出年份。

.
-z : 显示值为 0的类别总计(除了全部总计)。默认禁止输出值为 0的总计。

.
userlist : 显示指定用户的连接时间。多个用户之间用空格间隔,不允许有通配符。
ac 命令使用举例

# 显示所有用户的总计登录时间
$ ac
total 66.53

# 显示用户 crq 的总计登录时间
$ ac crq
total 0.04

# 显示用户 crq 和 osmond 的总计登录时间
$ ac crq osmond
total 26.19

# 显示每个用户的总计登录时间

$ ac -p
crq 0.06
osmond 26.15
root 40.38
total 66.58

# 显示指定用户的总计登录时间

$ ac -p crq osmond
crq 0.04
osmond 26.15
total 26.19

# 为每天输出一个所有用户的总计登录时间
$ ac -d
Jan 21 total 30.82
Today total 35.76

# d和 y 参数的结合

$ ac -dyp
osmond 12.95
root 17.87

Jan 21 2008
total 30.82
crq 0.06
osmond 13.20
root 22.51

Today total 35.76
$

为了读取日志文件 /var/log/wtmp,CentOS在 SysVinit 软件包中还提供了 last和 lastb 两个命令。

psacct工具 /var/account/pacct文件太大相关推荐

  1. mysql数据库建表失败_mysql数据库文件太大导致建表失败,如何避免

    [求助]mysql数据库文件太大导致建表失败,如何处理? 目录下各文件大小如下: root /mbsc/mysql/data # ll total 120646812 -rw-rw---- 1 mys ...

  2. mac u盘文件过大 拷贝不进去_使用mac时文件太大无法拷贝怎么办

    高新科技的不断发展,我们对文件储存需求越来越大,无论是手机还是电脑文件的存储经常会非常大,那么对于这些大文件的拷贝,我们常常会遇到文件太大无法拷贝的问题,下面小编就针对mac用户来教大家如何解决这一问 ...

  3. java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析

    1.场景 通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出. 对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策. 这时候怎么办 ...

  4. linux apache 大文件,Apache下error.log文件太大的处理方法

    Apache下error.log文件太大的处理方法 2019年05月03日 | 萬仟网网络运营 | 我要评论 清除error.log.access.log并限制apache日志文件大小的方法 有个客户 ...

  5. 图片文件太大?缩小图片文件的2个小技巧

    日常生活中,经常会碰到图片文件太大,不满足自身需求的情况,比如在网站上传图片的时候一般都会有大小限制.面对这个问题,该怎么办呢? 一般处理的方式有两种,一种是使用图片压缩工具,来对图片进行压缩. 现在 ...

  6. 动图文件太大怎么办?一招教你在线压缩GIF图片

    在日常的生活和工作中,经常会用到图片来进行信息的传递和展示.如果使用动图GIF文件,但是文件太大,被平台限制,无法上传使用的话,怎样才能快速的解决这个问题呢?随着互联网的不断发展,科技的不断进步,可以 ...

  7. pdf文件太大怎么压缩?四个步骤完成

    pdf文件太大怎么压缩?Hello,大家好,工作中相信大家都有遇到过这样的情况,就是pdf文件很大,使得文件在传给客户或者朋友的时候变得特别慢,好不容易传过去了,打开的时候文件又一直转圈圈,特别是在大 ...

  8. word文件太大怎么压缩到最小-word压缩教程

    提起文件的压缩,可能我们比较常见的压缩有图片,视频或者PDF格式一类的文件,其实有时候我们制作的word文档也是需要压缩的,尤其是那些添加了很多图片的word文档,如果不提前压缩,我们会发现word文 ...

  9. pdf文件太大怎么变小,如何压缩pdf大小

    pdf文件太大怎么变小?如果你是Windows电脑,可以使用PDF编辑器来减小PDF文件的大小,比如这款出色的PDF压缩工具-易我PDF编辑器,它的"压缩"功能提供了两种减小文件大 ...

  10. cdr文件太大怎么转成小内存 CDR文件太大打不开怎么办

    使用cdr软件制作图形时,常常会将其制作成矢量图形.虽然矢量图形有着不失真.可任意放大等优点,但常会导致cdr文件过大.那么,cdr文件太大怎么转成小内存,CDR文件太大打不开怎么办?本文将会针对以上 ...

最新文章

  1. 为什么NLP相对来说这么困难?
  2. 如何用python画爱心型线_python怎么画爱心
  3. 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
  4. qml-创建可移动的模态弹出框
  5. element-ui简单使用
  6. 给图片下方加水印_别再看不起美图秀秀啦,想要做长图,批量加水印,用它超级方便...
  7. java x锁_基于Java名称的锁?
  8. 制作Camtasia 2020显示捕获击键标注的动画
  9. 国标28181:libexosip2协议栈原理
  10. wordpress插件-wordpress常用插件大全
  11. Bluefish编辑成果即时预览
  12. wamp5 mysql 启动不了_wamp5安装问题之mysql无法启动
  13. (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
  14. android视频用什么组件,一个简单的移动端视频组件的实现
  15. Token Bucket 令牌桶算法
  16. 中小企业比08年还难 浙江企业扎堆倒闭
  17. python quit()讲解_Python locals.QUIT属性代码示例
  18. CSDN 开始起航
  19. pptp和l2tp有什么区别
  20. 离散数学:计算主析取范式(基于真值表)

热门文章

  1. 机器视觉编码靶标自动提取和解码Coded Target/  Marker Detector
  2. tssd加载lisp_几个有用的CAD的加载程序LISP
  3. iOS关于应用出现未验证应用的解决方法
  4. SPF算法中的ISPF和PRC介绍
  5. Win12系统或新增“灵动岛”设计 截图曝光
  6. 互联网大厂数据分析面试常见问题及解法,建议收藏
  7. 考出面试者基本功的 10 个简单编程题
  8. pdf怎么压缩的小一点?
  9. 群赛 round#5 解题报告(superoxide,choice,rpwt)
  10. 【MacOS】MacOS 添加虚拟打印机