Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161317
  • 博文数量: 51
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 471
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-11 10:24
文章分类

全部博文(51)

文章存档

2018年(3)

2017年(22)

2016年(9)

2015年(17)

我的朋友

分类: 系统运维

2015-10-09 11:39:55

1./var/account/pacct文件(非文本文件,每天1个保留7天轮替时间为每日4:02)

 用于查找由于用户操作而引发的系统或应用的故障原因。
       linux默认不启动该进程统计程序。但只要系统负荷和系统硬盘空间允许,可以使用该日志文件。
       启动进程统计程序的命令:accton /var/account/pacct
       停止进程统计程序的命令:  accton      
      
       pacct日志文件记录了历史上曾经发生过的所有用户(含系统和应用)的所有操作(程序名【注:内部命令不记录,bash(linux默认的shell)常用的内部命令有:cd,kill等,全部内部命令可由命令man bash得到】,用户名,登录终端,命令运行时间段,日期和时间),结合last命令输出的终端所在的IP地址,我们就可知道用户在什么时间,从哪里登录,执行了什么命令,命令运行的时间长度。
遗憾的是没有操作命令的参数,因为该程序的只是为进程统计而设。

      检查当前的命令(无参数)操作历史:
      #lastcomm –f /var/account/pacct (如文件很大可使用登录工具的log来保存)
ftp_get.php       S     sms      __         0.01 secs Fri May 21 15:04
smppxmzd           F    root     __         0.00 secs Fri May 21 15:04
crond             SF    root     __         0.00 secs Fri May 21 15:04
sh                S     sms      __         0.00 secs Fri May 21 15:04
ping              S     sms      __         0.00 secs Fri May 21 15:04
crond             SF    root     __         0.00 secs Fri May 21 15:04
sh                S     sms      __         0.00 secs Fri May 21 15:04
ping              S     sms      __         0.00 secs Fri May 21 15:04
consoletype             root     __         0.00 secs Fri May 21 15:04
cat                     root     __         0.00 secs Fri May 21 15:04
crond             SF    root     __         0.00 secs Fri May 21 15:04
sh                S     sms      __         0.00 secs Fri May 21 15:04
ping              S     sms      __         0.00 secs Fri May 21 15:04
sgipd              F    root     __         0.00 secs Fri May 21 15:04
consoletype             root     __         0.00 secs Fri May 21 15:04
mv                    root      pts/4      0.00 secs Fri May 21 15:03
ls                S     root     pts/4      0.00 secs Fri May 21 15:03
[root@sms log]#

    案例分析:     
蓝色部分就是在日期时间May 21 15:03,用户root从终端 pts/4 登录上来,执行了命令“ls”和“mv”。
注意:该“mv”操作如果移走了系统或应用正在使用的目录或文件,则系统就会告警。而维护人员可根据此文件搜索到“mv”的操作者(lastcomm –f /var/account/pacct | grep mv),从而得知移走的内容,快速进行恢复。

    检查非当前的命令(无参数)操作历史:

(1) 解压某日的pacct.N.gz
gzip -d /var/account/pacct.N.gz

(2) 查看某日的pacct.N
lastcomm –f /var/account/pacct.N
      
2./var/log/wtmp(非文本文件,每月1个,保留2月,轮替时间为每月1日)      
用于查找用户登录位置和时间及时间段的历史。
      该文件记录了所有曾经登录过的用户名,登录源及登录时间段。系统默认保留2个月的记录:当月为wtmp,上月为wtmp.1。我们可使用该文件再配合其他命令来查询人为操作引发的系统故障。该日志文件最大的好处是有登录源信息(IP地址)。
     
(1) 查询当月用户的登录情况:

[root@ftpnode2 log]# last
root   pts/3        172.16.80.140    Fri May 21 10:34   still logged in  
ticketer pts/1        192.168.71.145   Fri May 21 10:25   still logged in 


ticketer pts/1        172.16.80.28     Fri May 21 09:00 - 09:09  (00:09)   
ticketer pts/3        192.168.71.145   Fri May  7 10:05 - 14:00 (3+03:55)  
ticketer pts/4        192.168.71.145   Fri May  7 09:34 - 11:46  (02:11)   
ticketer pts/3        172.16.80.28     Fri May  7 09:10 - 09:47  (00:37)   
wtmp begins Wed May  5 09:34:25 2010
[root@ftpnode2 log]#

注:对于“still logged in”的用户,可使用命令w来查询该用户当前正在执行的命令;对于已离线的用户,只能根据命令history来查询该用户曾经执行过的命令,但无时间戳。

(2) 查询上月用户登录情况:

 [root@ftpnode2 log]#last –f /var/log/wtmp.1
ticketer pts/7        192.168.71.145   Fri Apr 30 10:30 - 13:23  (02:52)   
ticketer pts/6        192.168.71.145   Fri Apr 30 10:27 - 10:49  (00:21)   
ticketer pts/5        192.168.71.145   Fri Apr 30 10:04 - 12:26  (02:22)   

。   
ticketer pts/1        172.16.80.28     Thu Apr  8 09:24 - 11:36  (02:11)   
ticketer pts/1        172.16.80.28     Wed Apr  7 08:57 - 09:01  (00:04)   
ticketer pts/1        172.16.80.28     Tue Apr  6 13:14 - 15:26  (02:11)   
ticketer pts/1        192.168.71.145   Tue Apr  6 08:39 - 11:01  (02:22)   
ticketer pts/1        172.16.80.28     Fri Apr  2 08:53 - 11:05  (02:11)   
ticketer pts/1        172.16.80.28     Thu Apr  1 10:25 - 10:30  (00:04)   

wtmp.1 begins Thu Apr  1 10:25:34 2010
[root@ftpnode2 log]# 
 3./home/user_name/.bash_history(文本文件;root用户特殊:/root/.bash_history)

用于查询用户曾经执行过的完整命令,但没有时间点。

这条命令最大的好处是可以看到带有参数的完整命令,这可以弥补/var/account/pacct文件的缺憾。
切换到该用户,然后使用history命令就可列出用户曾经的操作:
su root
[root@nbu_jc_media log]#history
  985  telnet 172.16.80.21
  986  ssh 172.16.80.78
  987  more /var/log/spooler
  988  df -k
  989  telnet 172.16.80.21
  990  ssh 172.16.80.78
  991  more /var/log/spooler
  992  df -k
  993  telnet 172.16.80.21
  994  ssh 172.16.80.78
  995  more /var/log/spooler
  996  df -k
  997  telnet 172.16.80.21
  998  ssh 172.16.80.78
  999  w
 1000  history
 [root@nbu_jc_media ~]#

注:最大序号的记录为最新的记录,linux默认保存1000条记录(/etc/profile)。

4./var/run/utmp(非文本文件,)

用于查询在线用户正在执行的命令(完整命令)。

该文件只记录当前在线用户的当前操作命令。

[root@nbu_jc_media log]# w
16:05:30 up 40 days,  3:17,  4 users,  load average: 0.07, 0.21, 0.11
USER     TTY      FROM      LOGIN@   IDLE   JCPU   PCPU    WHAT
root    pts/3    192.168.71.145   14:35      0.00s    0.02s   0.00s     cd /etc
root     :0       -                28Apr10 ?xdm?   6:57m  0.25s /usr/bin/gnome-session
root     pts/1    :0.0             10May10 10days  0.03s  0.01s ssh 172.16.80.26
root     pts/2    :0.0             10May10 10days  0.03s  0.03s bash
[root@nbu_jc_media log]#

案例分析:
蓝色行显示:当前用户root,在时间14:35从192.168.71.145登录进来,当前执行的操作是cd /etc命令。

5./var/log/lastlog(非文本文件)
用于查询用户最后一次的登录记录。
该文件只记录用户最后一次的登录情况。

[root@ftpnode2 log]# lastlog
Username         Port     From             Latest
root             pts/3    172.16.80.140    Fri May 21 10:34:38 +0800 2010
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
news                                       **Never logged in**
uucp                                       **Never logged in**
ticketer         pts/1    192.168.71.145   Fri May 21 10:25:10 +0800 2010
[root@ftpnode2 log]#

    综合使用上述5种方法中的几种,我们就能达到查询用户详细的操作历史记录(不超过7天)和登录记录(不超过2个月)的基本要求。而这些记录将有助于我们找到系统和应用故障的发生源。

阅读(1348) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~