深入理解linux文件系统( 理解inode与block,理解硬链接软链接,掌握恢复误删文件及其分析方法,掌握用户日志及其查询命令 )

深入理解linux文件系统

前言

深入了解linux系统文件系统和日志文件分析,介绍常见的系统故障的分析与排除过程

inode与block详解

文件系统通常会将这两部分分别存放在inode和block中

inode和bolck概述

linux系统中储存文件的权限和文件属性(所有者,群组,时间参数),都会存放在inode和bolck中

1:数据(block)块:

操作系统读取硬盘时候,不会一个个扇区读取,效率低,而是一次性读取多个扇区,即一次读写一“块”(block)

八个扇区组成一块,“块”大小为4KB,是文件最小单元,文件是储存在硬盘上的,最小储存单元是“ 扇区”,每个扇区储存512字节

2:云信息 :

元信息是是文件创建者,文件创建日期,文件大小

inode(索引节点)

储存云信息的地方叫inode,中文名“ 索引节电”,也叫i节点

存储内容	      存储位置
元信息            inode
数据	            block

inodu的内容

inode包含很多的文件元信息,但不包括文件名,例如:

文件字节数

文件拥有者UserID

文件GroupID

文件读,写,执行权限

文件时间戳

使用star命令查看文件inode信息

[root@localhost ~]# touch 1.txt
[root@localhost ~]# stat 1.txt
  文件:"1.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:100670485   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-06-23 19:12:29.093061439 +0800
最近更改:2020-06-23 19:12:29.093061439 +0800
最近改动:2020-06-23 19:12:29.093061439 +0800
创建时间:-

Linux系统文件三个主要的时间属性

ctime(change time)

最后一次改变文件或目录(属性)的时间,例如执行chmod,chown等命令

atime(access time)

最后一次访问文件或目录的时间

mtime(modify time)

最后一次修改文件或目录(内容)时间

inode的内容

目录文件表格

文件名1 inode号码1
文件名2 inode号码2

inode不包括文件名,文件名存放在目录下

每个inode都有一个号码,操作系统用inode号码来识别不同的文件

Linux系统内部不使用文件名,而使用inode号码来识别文件

对于用户来说,文件名指示inode号码便于识别的别称

inode的号码

表面上用户通过文件名打开文件,实际上,系统内部过程分为3步骤

1.系统找到这个文件名对应的inode号码

2.通过inode号码,获取inode信息

3.根据inode信息,找到文件数据所在的block,读出数据

[root@localhost ~]# stat 1.txt
  文件:"1.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:100670485   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0

[root@localhost ~]# ls -i 1.txt
100670485 1.txt

mark

inode的大小

diode也会耗硬盘空间,每个inode的大小一般是128字节或256字节

格式化时确定inode的总数

[root@localhost ~]# df -i
文件系统                    Inode 已用(I)   可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root  26214400   29647  26184753       1% /
devtmpfs                   479645     399    479246       1% /dev
tmpfs                      482685       1    482684       1% /dev/shm
tmpfs                      482685    1283    481402       1% /run
tmpfs                      482685      16    482669       1% /sys/fs/cgroup
/dev/sda1                  524288     327    523961       1% /boot
/dev/mapper/centos-home 128512000       7 128511993       1% /home
tmpfs                      482685       1    482684       1% /run/user/0
/dev/sr0                        0       0         0        - /mnt

于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象

inode的作用

1,当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件

2,移动或者重命名文件时,只改变文件名,不影响inode号码

3,打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

因为系统通过inode号码,识别运行中的文件,不通过文件名更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件

硬链接与软链接

链接文件有两种(in 。in —s)

一种类似于Windows的快捷方式功能的文件,这种称为软链接

另一种则是通过文件系统的inode链接文件来产生新的文件名,而不是产生新文件,这种称之为硬链接

硬链接

一般情况下,每个inode号码对应一个文件名。Linux系统允许,多个文件名指向同一个inode号码。

硬链接格式

ln命令创建硬链接

ln 源文件 目标 ,不可以对目录做硬链接

运行此命令后,源文件和目标文件的inode号码相同,都指向同一个inode。

inode信息中的“链接数”此时就会增加1

当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名

但删除一个文件名,不会影响另一个文件名的访问

删除一个文件名,就会使得inode信息中的“链接数”减少1

[root@localhost ~]# mkdir -p /kgc/bdqn
[root@localhost ~]# stat /kgc/bdqn
  文件:"/kgc/bdqn"
  大小:6         	块:0          IO 块:4096   目录
设备:fd00h/64768d	Inode:67505956    硬链接:2
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2020-06-23 19:47:54.058897986 +0800
最近更改:2020-06-23 19:47:54.058897986 +0800
最近改动:2020-06-23 19:47:54.058897986 +0800
创建时间:-
[root@localhost kgc]# ls -a
.  ..  bdqn

[root@localhost ~]#  stat /kgc
  文件:"/kgc"
  大小:18        	块:0          IO 块:4096   目录
设备:fd00h/64768d	Inode:33584870    硬链接:3
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2020-06-23 19:47:54.057897961 +0800
最近更改:2020-06-23 19:47:54.058897986 +0800
最近改动:2020-06-23 19:47:54.058897986 +0800
创建时间:-
[root@localhost bdqn]# ls -ai
67505956 .  33584870 ..

软连接

链接就是再创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名

这是软链接与硬链接的最大不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode“链接数”不会因此产生变化。

这表示,文件A依赖于文件B而存在,如果删除了文件B ,打开文件A就会报错

读取文件A时,系统会自动将访问者导向文件B

软链接的inode不一样
[root@localhost bdqn]# echo a>a
lrwxrwxrwx. 1 root root 1 6月  23 21:56 b -> a
[root@localhost bdqn]# stat a b
  文件:"a"
  大小:2         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:67505954    硬链接:1   
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2020-06-23 21:56:30.566896860 +0800
最近更改:2020-06-23 21:56:30.566896860 +0800
最近改动:2020-06-23 21:56:30.566896860 +0800
创建时间:-
  文件:"b" -> "a"
  大小:1         	块:0          IO 块:4096   符号链接
设备:fd00h/64768d	Inode:67505961    硬链接:1
权限:(0777/lrwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:default_t:s0
最近访问:2020-06-23 21:56:51.743429433 +0800
最近更改:2020-06-23 21:56:49.559374506 +0800
最近改动:2020-06-23 21:56:49.559374506 +0800
创建时间:-

恢复误删除的文件

EXT 类型文件恢复

删除一个文件,实际上并不清除 inode 节点和 block 的数据,只是在这个文件的父目录 里面的 block 中,
删除这个文件的名字。Linux 是通过 Link 的数量来控制文件删除的,只有 当一个文件不存在任何 Link 的时候,
这个文件才会被删除。
尤其对于客户企业中一些新手。当然,这里所指的是彻底删除,即已经不能通过“回收 站”找回的情况,
比如使用“rm -rf”来删除数据。针对 Linux 下的 EXT 文件系统,可用的恢复工具有 debugfs、ext3grep、extundelete 等。
其中 extundelete 是一个开源的 Linux 数据 恢复工具,支持 ext3、ext4 文件系统。

在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的 数据遭到误删,
就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这样做的原因很简单,因为将文件删除后,
仅仅是将文件的 inode 节点中的扇区指针清零,实际文件还 存储在磁盘上,如果磁盘继续以读写模式挂载,
这些已删除的文件的数据块就可能被操作系统重新分配出去。如果数据库被新的数据覆盖后,
这些数据就真的丢失了,恢复工具也回 天无力。所以以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数 据成功的比例。

下面将介绍使用 extundelete 工具如何恢复误删除的文件。

1.编译安装 extundelete
在编译安装 extundelete 之前需要先安装两个依赖包 e2fsprogs-libs 和 e2fsprogs-devel,
这两个包在系统安装光盘的/Package 目录下就有,使用 rpm 或 yum 命令将其安装。

[root@localhost bdqn]# yum -y install e2fsprogs-devel e2fsprogs-libs
[root@localhost ~]# yum -y install wget     安装wget wget是一个下载文件的工具
[root@localhost bdqn]# wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2     在网页上下载
[root@localhost bdqn]# yum -y install bzip2   安装bzip2解压
[root@localhost bdqn]#  tar xvf extundelete-0.2.4.tar.bz2 用tar解压
[root@localhost bdqn]#  cd extundelete-0.2.4/   进入 extundelete 编译软件
#####没有make  安装make####
make是gcc的编译器,一定要安装
2、安装g++:
yum install gcc gcc-c++
[root@localhost extundelete-0.2.4]# ./configure 
[root@localhost extundelete-0.2.4]# make
extundelete.cc:1272:29: 警告:在 {} 内将‘search_flags’从‘int’转换为较窄的类型‘ext2_ino_t {aka unsigned int}’ [-Wnarrowing]      这里安装警告没事
[root@localhost extundelete-0.2.4]# make install    安装make

  

2、模拟删除并执行恢复操作

[root@192 ~]# fdisk -l   
[root@192 ~]# fdisk /dev/sdb       进入交互模型
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x002fd88d 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):
命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x002fd88d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@192 ~]# mkfs -t ext4  /dev/sdb1    把sdb1格式化
[root@192 ~]# mkdir /data          创建一个data目录
[root@localhost ~]# mount /dev/sdb1 /data/
[root@192 ~]# cd /data
[root@192 data]# echo a>a && echo a>b && echo a>c  && echo a>d    写入一第东西
[root@192 data]# ll 
总用量 16
-rw-r--r--. 1 root root 2 6月  23 22:39 a
-rw-r--r--. 1 root root 2 6月  23 22:39 b
-rw-r--r--. 1 root root 2 6月  23 22:39 c
-rw-r--r--. 1 root root 2 6月  23 22:39 d


3执行完命令‘extundelete /dev/sdb1”后输入”y“即可查看该文件系统的使用情况

[root@localhost data]# extundelete /dev/sdb1
[root@192 data]# extundelete /dev/sdb1 --inode 2 也可以使用“extundelete 查看文件系统/dev/sdb1 下存在哪些文件, 其中--inode 2 代表从 i 节点为 2 的文件开始查看,一般文件系统格式化挂 载之后,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。


(2)模拟误操作并恢复

[root@localhost data]# rm -rf a b   ####删除a b 文件
[root@192 data]# rm -rf a b
[root@192 data]# ls
c  d
root@localhost data]# cd 			###切到家目录
[root@localhost ~]# umount /data/		###卸载挂载
[root@localhost ~]# extundelete /dev/sdb1 --restore-all	###恢复删除cd的数据
[root@localhost RECOVERED_FILES]# ll			###查看恢复的文件
总用量 8
-rw-r--r-- 1 root root 2 6月  23 00:40 a
-rw-r--r-- 1 root root 2 6月  23 00:40 b

下面将介绍使用xfs 类型文件备份和恢复

[root@localhost /]# mkfs.xfs -f /dev/sdb1       
[root@localhost /]# mount /dev/sdb1 /data/
[root@localhost /]# df -Th  查看挂载点        
[root@localhost /]# cd /data/     测试对象
[root@localhost data]# cp /etc/passwd ./  复制
root@localhost data]# mkdir test      创建test
[root@localhost data]# touch test/a
[root@localhost data]# yum -y install tree    安装tree
[root@localhost data]# tree /data
/data
├── passwd
└── test
    └── a
    ##使用xfsdump 命令备份整个分区##
[root@localhost data]# yum install -y xfsdump
[root@localhost data]# xfsdump -f /opt/dump_sdb1 /dev/sdb1
####交互信息###
please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1 				####指定备份会话标签

please enter label for media in drive 0 (timeout in 300 sec) 
-> sdb1 					###指定设备标签,就是对要备份的设备做一个描述
[root@localhost ~]# xfsdump -I		####查看备份内容信息

删除之前创建的内容,模拟数据丢失

[root@192 opt]# yum install -y xfsdump   安装xfsdump 
[root@192 opt]#xfsdump -f /opt/dump_sdb1 /dev/sdb1
[root@192 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xb69b5a42 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@bogon /]# mkfs.xfs /dev/sdb1
[root@bogon /]# mkdir data
[root@bogon /]# mount /dev/sdb1 /data/
[root@bogon /]#yum install -y xfsdump
[root@bogon /]#xfsdump -f /opt/dump_sdb1 /dev/sdb1
please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1 	####指定备份会话标签
please enter label for media in drive 0 (timeout in 300 sec) 
-> sdb1 					###指定设备标签,就是对要备份的设备做一个描述

[root@localhost ~]# xfsdump -I
xfsdump: Dump Status: SUCCESS
[root@localhost ~]# cd /data/
[root@localhost data]# ls
passwd  test
[root@localhost data]# rm -rf *
[root@localhost data]# ls
[root@localhost ~]# xfsrestore -f /opt/dump_sdb1 /data/
[root@localhost ~]# ls /date/
passwd  test

使用 xfsdump 时,需要注意以下的几个限制
1、xfsdump 不支持没有挂载的文件系统备份,所以只能备份已挂载的;
2、xfsdump 必须使用 root 的权限才能操作(涉及文件系统的关系);
3、xfsdump 只能备份 XFS 文件系统;
4、xfsdump 备份下来的数据(档案或储存媒体)只能让 xfsrestore 解析;
5、xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统。

分析日志文件

用于记录系统,程序运行中发生的各种事件,日志文件是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的“日记”,不同的日志文件记载了不同类型的信息,如Linux内核消息,用户登录事件,程序错误等,通过阅读日志,有助于诊断和解决系统故障,在Linux系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹

日志文件的分类

1:内核及系统日志

由系统服务rsyslog统一进行管理,日志格式基本相似

2:用户日志

记录系统用户登录及退出系统的相关信息,包括用户名,登录的终端,登录时间,来源主机,正在使用的进程操作等。

3:程序日志

由各种应用程序独立管理的日志文件,记录格式不统一

程序安装后不会生成日志文件,只有在启动的时候才会生成日志文件,没有访问它,日志文件就是空的

日志保存位置

Linux系统本身和大部分服务器程序的日志文件都默认存放在/var/log下

有相当一部分日志文件只有root用户才有权读取,保证了相关日志信息的安全性

日志类别 存放目录
内核及公共消息日志 /var/log/messages
计划任务日志 /var/log/cron
系统引导日志 /var/log/dmesg
邮件系统日志 /var/log/maillog
用户登录日志 /var/log/lastlog,/var/log/secure,/var/log/wtmp,/var/log/btmp

日志文件分析

为了通过查询日志文件找到关键信息,对系统服务文件分析方法,判断故障发生的原因

日志由系统服务rsyslogd统一管理

  • 软件包:rsyslog-7.4.7-16.el7.x86_64
  • 主要程序:/sbin/rsyslogd
  • 配置文件:/etc/rsyslog.conf

日志消息的优先级

级别 解释
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况(某些功能不可用)
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等(做维护的时候可能会用到)

内核及大多数系统消息都被记录到公共日志文件/var/log/messages中,而其他一些程序消息被记录到各自独立的日志文件中,日志消息还可以记录到特定的存储设备中,或者直接发送给指定用户

[root@localhost ~]# more /var/log/messages 

用户日志

/var/log/lastlog:最近的用户登录事件

/var/log/wtmp:用户登录,注销及系统开,关机事件

/var/log/utmp:当前登录的每个用户的详细信息

/var/log/secure:与用户验证相关的安全性事件

查看用户状况

users,who,w,last,lastb命令

user命令只简单的输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数

[root@localhost ~]# users
root root root

who命令用户报告当前登录到系统中的每个用户的信息

[root@localhost ~]# who
root     tty1         2020-06-25 16:01
root     pts/0        2020-06-25 16:01 (192.168.136.2)
root     pts/1        2020-06-25 16:58 (192.168.136.2)

w命令用于显示当前系统中的每个用户及其所运行的进程信息,比users,who命令的输出内容要更加丰富一些

[root@localhost ~]# w
 17:41:00 up  1:02,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      16:01    1:39m  0.02s  0.02s -bash
root     pts/0    192.168.136.2    16:01    1:26m  0.20s  0.20s -bash
root     pts/1    192.168.136.2    16:58    4.00s  0.10s  0.04s w

查询用户登录的历史记录:last,lastb命令

last命令用于查询成功登录到系统的用户记录

[root@localhost ~]# last
root     pts/1        192.168.136.2    Thu Jun 25 16:58   still logged in   
root     pts/0        192.168.136.2    Thu Jun 25 16:01   still logged in   
root     tty1                          Thu Jun 25 16:01   still logged in   
reboot   system boot  3.10.0-957.el7.x Thu Jun 25 15:51 - 17:41  (01:50)    
root     tty1                          Tue Jun 23 23:23 - 15:50 (1+16:27)   
reboot   system boot  3.10.0-957.el7.x Tue Jun 23 23:23 - 15:51 (1+16:28)   
root     pts/1        192.168.136.1    Wed Jun 17 19:55 - crash (6+03:27)   
root     pts/0        192.168.136.1    Tue Jun 16 19:52 - crash (7+03:30)   
root     tty1                          Tue Jun 16 19:51 - 23:22 (7+03:30)   
reboot   system boot  3.10.0-957.el7.x Tue Jun 16 19:51 - 15:51 (8+19:59)   
root     pts/1        192.168.136.1    Tue Jun 16 19:50 - down   (00:00)    
root     pts/0        192.168.136.1    Tue Jun 16 18:58 - down   (00:53)    
root     tty1                          Tue Jun 16 18:49 - 19:51  (01:01)    
reboot   system boot  3.10.0-957.el7.x Wed Jun 17 02:48 - 19:51  (-6:-57)   
root     tty1                          Wed Jun 17 02:09 - 02:23  (00:13)    
reboot   system boot  3.10.0-957.el7.x Wed Jun 17 01:40 - 19:51  (-5:-48)   

wtmp begins Wed Jun 17 01:40:06 2020

lastb命令用于查询登录失败的用户记录

[root@localhost ~]# lastb
root     tty1                          Wed Jun 17 02:09 - 02:09  (00:00)    
root     tty1                          Wed Jun 17 02:09 - 02:09  (00:00)    
(unknown tty1                          Wed Jun 17 02:09 - 02:09  (00:00)    
(unknown tty1                          Wed Jun 17 02:09 - 02:09  (00:00)    
root     tty1                          Wed Jun 17 02:08 - 02:08  (00:00)  

程序日志

还有一部分文件没有使用rsyslog服务来管理,而是由自己程序维护一下包括:

web服务:/var/log/httpd/

access_log,error_log(httpd网站服务程序使用的两个日志文件access_log和error_log,分别记录客户访问事件,错误事件。)

总结

``
[root@localhost ~]# lastb
root tty1 Wed Jun 17 02:09 - 02:09 (00:00)
root tty1 Wed Jun 17 02:09 - 02:09 (00:00)
(unknown tty1 Wed Jun 17 02:09 - 02:09 (00:00)
(unknown tty1 Wed Jun 17 02:09 - 02:09 (00:00)
root tty1 Wed Jun 17 02:08 - 02:08 (00:00)


####          程序日志

还有一部分文件没有使用rsyslog服务来管理,而是由自己程序维护一下包括:

web服务:/var/log/httpd/

access_log,error_log(httpd网站服务程序使用的两个日志文件access_log和error_log,分别记录客户访问事件,错误事件。)



##                  总结

管理人员注意的是,日志文件不是完全可靠,高明的黑客在入侵的时候,经常会打扫现场。所有需要综合运用以上系统命令,全面的进行审核和检查,做出正确的判断

猜你喜欢

转载自blog.csdn.net/weixin_47151717/article/details/107130624