Linux日志管理五大命令详解
来源:互联网 发布:wampserver搭建php 编辑:程序博客网 时间:2024/05/22 16:03
转载学习:
Linux日志管理五大命令详解
日志主要的功能有:审计和监测。它还可以实时的监测系统状态,监测和追踪侵入者等等。成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。Linux中提供了异常日志,并且日志的细节是可配置的。Linux日志都以明文形式存储,所以用户不需要特殊的工具就可以搜索和阅读它们。还可以编写脚本,来扫描这些日志,并基于它们的内容去自动执行某些功能。Linux日志存储在/var/log目录中。这里有几个由系统维护的日志文件,但其他服务和程序也可能会把它们的日志放在这里。大多数日志只有root账户才可以读,不过修改文件的访问权限就可以让其他人可读。在Linux系统中,有四类主要的日志:& s( l. [3 ] z! d; D7 {
◆连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。◆进程统计:由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。- t6 S g2 i/ I6 p- X A
◆错误日志:由syslogd(8)守护程序执行。各种系统守护进程、用户程序和内核通过syslogd(3)守护程序向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。0 v# F8 F+ U$ c0 U) _
◆实用程序日志:许多程序通过维护日志来反映系统的安全状态。su命令允许用户获得另一个用户的权限,所以它的安全很重要,它的文件为sulog。同样的还有sudolog。另外,诸如Apache等Http的服务器都有两个日志:access_log(客户端访问日志)以及error_log(服务出错日志)。 FTP服务的日志记录在xferlog文件当中,Linux下邮件传送服务(sendmail)的日志一般存放在maillog文件当中。& f0 c1 M% ?* F3 M" q. |
utmp、wtmp日志文件是多数Linux日志子系统的关键,它保存了用户登录进入和退出的记录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出记录在文件wtmp中;数据交换、关机以及重启的机器信息也都记录在wtmp文件中。所有的记录都包含时间戳。时间戳对于日志来说非常重要,因为很多攻击行为分析都与时间有极大的关系。这些文件在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,用户可以根据实际情况来对这些文件进行命名和配置使用。
! _4 e9 T. a: D/ [ utmp文件被各种命令文件使用,包括who、w、users和finger。而wtmp文件被程序last和ac使用。
1 i' V( S4 U+ P; ~$ ]7 f/ { wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。
: f: ~' R$ U! z% R 1.who命令8 }! @) d% r0 ^4 p* [
who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如:运行who命令显示如下所示:" M( T! ~8 c2 K4 p# m# G! p4 d
# who
* M3 Q5 ` Y4 @ v
/ g$ s3 K# a8 g 如果指明了wtmp文件名,则who命令查询所有以前的记录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。例如:运行该命令如下所示:* f% i. _7 e, L! z
# who /var/log/wtmp! M& Y6 I5 N' P+ N8 C5 x
root :0 2010-01-24 21:47- M2 f; x' J- Y; u# u! _
root pts/1 2010-01-24 21:47 (:0.0)% w/ w# W% K& n, y& s
root :0 2010-02-20 19:368 l" ?5 ?$ A( a4 p9 {3 C9 M
root pts/1 2010-02-20 19:36 (:0.0)
, S; ^ h- c) _5 o- { root :0 2010-02-21 15:211 z* R [3 o b. {
root pts/1 2010-02-21 15:56 (:0.0)# z( ]- O2 G- ~' d! H) Y: P6 g3 C
root pts/2 2010-02-21 16:03 (:0.0)" r( k. J/ {; \- v2 C
root :0 2010-02-22 13:01
. u! N1 @0 ^9 h: p S6 r9 N root pts/1 2010-02-22 13:02 (:0.0), A4 R+ v1 k9 B1 d$ } n9 j. ?
root pts/2 2010-02-22 15:57 (:0.0)
/ Q$ N1 d& G4 G: V root pts/3 2010-02-22 15:57 (:0.0)
$ Q% F8 H& s o& j) h 2.users命令
( C% i, y- ^- {: h0 G/ S" B6 v users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示:& c: I/ i7 j% |+ E
# users4 g$ L# ]0 g" y( S# {# @
root root root* ]( j$ i6 S: C- Z0 ~ q
3.last命令
& K7 j. J/ x) e; O: `. k last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现起中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:
9 q. h- ^+ I9 { # last) G% S$ R& ^# ]4 C8 u
root pts/3 :0.0 Mon Feb 22 15:57 still logged in
+ d4 K5 n% B8 l" f" ]/ R7 f root pts/2 :0.0 Mon Feb 22 15:57 still logged in
4 o( d" V/ k6 H5 q root pts/1 :0.0 Mon Feb 22 13:02 still logged in% {1 ^, e! i0 Q( g1 K
root :0 Mon Feb 22 13:01 still logged in, @& X" t. r2 v
reboot system boot2.6.18-8.el5 Mon Feb 22 12:56 (03:02)2 v: p! S$ D+ k( P# O8 G4 u$ ]
root pts/2 :0.0 Sun Feb 21 16:03 - down (02:37)
9 g! F( x) {9 ^, W root pts/1 :0.0 Sun Feb 21 15:56 - down (02:45)
. B( X; Q/ S9 o& W root :0 Sun Feb 21 15:21 - down (03:20)
4 |6 f. R& `2 I reboot system boot2.6.18-8.el5 Sun Feb 21 15:19 (03:22)6 _) C3 e; J) e5 }, _8 [! B
root pts/1 :0.0 Sat Feb 20 19:36 - down (01:50) |2 j* R. [' X! O8 Y
root :0 Sat Feb 20 19:36 - down (01:51)
# Y! \7 M- l% e9 G9 ] reboot system boot2.6.18-8.el5 Sat Feb 20 19:34 (01:53), h4 D1 g# n! R- n" Q4 ?* _: V- v
root pts/1 :0.0 Sun Jan 24 21:47 - down (00:02) o8 q. j% b5 @
root :0 Sun Jan 24 21:47 - down (00:02)! f9 K8 f% H J0 E$ b! a3 ~4 d
reboot system boot2.6.18-8.el5 Sun Jan 24 21:45 (00:05)
7 ]8 x, c9 O4 U7 d* Z$ a rebootsystem boot2.6.18-8.el5 Sun Jan 24 21:41 (00:02)4 q4 Q7 s9 u2 _ |3 Q
wtmp begins Sun Jan 24 21:41:03 2010
读者可以看到,使用上述命令显示的信息太多,区分度很小。所以,可以通过指明用户来显示其登录信息即可。例如:使用last reoot来显示reboot的历史登录信息,则如下所示:; l5 Z& O8 t4 i) H/ r6 {
# last reboot
, ~, ], h3 m+ N* u4 y reboot system boot2.6.18-8.el5 Mon Feb 22 12:56 (03:07). y7 P5 g) W3 j1 `. ^4 |) M
reboot system boot2.6.18-8.el5 Sun Feb 21 15:19 (03:22)2 L6 P1 ^; V# v7 E# R5 g/ e
reboot system boot2.6.18-8.el5 Sat Feb 20 19:34 (01:53)
/ G9 _3 ?6 @* W- ?: ?1 v reboot system boot2.6.18-8.el5 Sun Jan 24 21:45 (00:05)" ]% R6 J6 N9 d; T, E
reboot system boot2.6.18-8.el5 Sun Jan 24 21:41 (00:02)7 X. k( }( k4 l' P- R. w/ f4 o
wtmp begins Sun Jan 24 21:41:03 2010' Q* t/ C3 S) e' P* @1 \
4.ac命令
* b8 ~; g% R' O4 a- L/ p ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 18.47,如下所示:
: E7 @$ {: ]4 }( x1 [: B8 s, B # ac! K# `5 R) `; P
total 18.479 H: ]3 z4 j" H1 r" `( n
另外,可加一些参数,例如,last -u 102将报告UID为102的用户;last -t 7表示限制上一周的报告。
1 v! j1 m5 K% h# Q% l 5.lastlog命令" r5 D5 }9 Q- _; \ t
lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示**Never logged**。注意需要以root身份运行该命令。运行该命令如下所示:8 T$ z9 Z- S( L- ~' M- \0 K4 L
# lastlog
# o7 U! Z) e [0 m' ? 用户名 端口 来自 最后登陆时间
. S9 W5 c/ D! m" Y root **从未登录过** Y$ j4 W" B" E; }. ?
bin **从未登录过**9 f( l9 e$ ~, r( J3 w
daemon **从未登录过**
5 [, o4 U, g8 l* D& b) s+ M8 c adm **从未登录过**+ w" e5 ]' e6 W; z5 l
lp **从未登录过**" ?4 X! j9 d7 b6 e) s5 w! ]
sync **从未登录过**
- Linux日志管理五大命令详解
- linux日志管理应该知晓的5大命令详解
- linux日志管理命令详解
- Linux命令详解之五-进程管理类命令
- Linux日志管理详解
- Linux日志管理详解
- Linux日志管理详解
- Linux五大搜索命令
- linux管理命令详解
- [转]Linux日志管理详解
- Linux服务器日志管理详解
- Linux服务器日志管理详解
- linux日志logger命令详解
- linux日志logger命令详解
- linux命令less查看大日志文件
- 管理员必备:五大Linux性能命令
- 管理员必备:五大Linux性能命令
- Linux性能相关五大命令
- 编译android kernel遇到的问题
- dtp
- 计算单词个数
- 项目管理书籍推荐 .
- 开发者应该学习SQL的九个理由
- Linux日志管理五大命令详解
- 激励员工的49个细节精华 .
- ORA10G RAC EM无法监控节点状态
- MyBatis配置及实现CURD操作
- 开通第一篇,请大家多多关照
- C/C++获取系统时间的函数
- HDOJ 1171 Big Event in HDU解题报告
- sql 复制数据表
- [原]一个备用的JSP空间供应商