在处理Linux系统出现的各种故障时,故障的症状是最容易发现的,而导致这一故障的原因才是最终排除故障的关键。
熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”,及时解决各种系统问题。
文件存储在硬盘上,硬盘最小存储单位是“扇区”(物理)单元格,簇(逻辑上)。每个扇区存储512字节
block(块)
操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)
连续的八个扇区组成一个block
是文件存取的最小单位
inode(索引节点)
中文名译名为“索引节点”,也叫i节点
用于存储文件元信息
1.2.1 inode包含文件的元信息,但是不包含文件名
例如:
文件的字节数
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳
1.2.2 Linux系统文件三个主要的时间属性
ctime(change time)
最后一次改变文件或目录(属性)的时间
atime(access time)
最后一次访问文件或目录的时间
mtime(modify time)
最后一次修改文件或目录(内容)的时间
1.2.3 目录文件的结构
每一个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不适用文件名,而使用indoe号码来识别文件
对于用户来说,文件名只是inode号码便于识别的别称
1.2.4 ⭐inode的号码
1、系统找到这个文件名对应inode号码
2、通过inode号码,获取inode信息
3、根据inode信息,找到文件数据所在的block,读出数据
stat 可以指定查看某个文件的inode信息
ls -i 查看文件名对应的inode号码
df -i 查看文件系统的inode数量信息(总数、已用、可用)
示例:
[root@localhost opt]# touch 123.txt
[root@localhost opt]# ls
123.txt rh
[root@localhost opt]# stat 123.txt
文件:"123.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:802h/2050d Inode:34952126 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-11-23 15:40:34.983126324 +0800
最近更改:2019-11-23 15:40:34.983126324 +0800
最近改动:2019-11-23 15:40:34.983126324 +0800
创建时间:-
[root@localhost opt]# ls -i
34952126 123.txt 1477390 rh
[root@localhost opt]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda2 10485760 121060 10364700 2% /
devtmpfs 229705 372 229333 1% /dev
tmpfs 233378 1 233377 1% /dev/shm
tmpfs 233378 560 232818 1% /run
tmpfs 233378 16 233362 1% /sys/fs/cgroup
/dev/sda5 5242880 142 5242738 1% /home
/dev/sda1 2097152 328 2096824 1% /boot
tmpfs 233378 6 233372 1% /run/user/42
tmpfs 233378 15 233363 1% /run/user/0
1.2.5 文件存储小结
1.2.6 inode的大小
inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节
格式化文件系统时确定inode的总数
使用df -i 命令可以查看每个硬盘分区的inode总数和已经使用的数量
1.2.7 inode的特殊作用
由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件。
移动或重命名文件时,只改变文件名,不影响inode号码
打开一个文件后,系统通过inode号码来识别该文件,不考虑文件名
这使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启
因为系统通过inode号码,识别运行中的文件,不通过文件名
更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件
等到下一次运行这个软件的时候,文件名就会自动指向新版文件,旧版文件的inode则被回收
在Linux系统下的链接文件有两种:
1、软连接:又称为符号链接,我们可以理解为Windows中的快捷方式,功能为快速连接到文件或目录。
2、硬连接:通过文件系统的inode链接文件来产生新的文件名(并不是产生新文件)。
一般情况下,文件名和inode号码一一对应关系,每个inode号码对应一个文件名。
但Linux系统允许多个文件名指向同一个inode号码,这表示可以用不同的文件名来访问同样的内容
创建硬连接,示例:
命令格式:ln 源文件 目标
[root@localhost opt]# ln 123.txt 234.txt
[root@localhost opt]# ls
123.txt 234.txt rh
[root@localhost opt]#
123.txt与234.txt的inode号码相同,都指向同一个inode。
当一个文件拥有多个硬连接时,对文件内容修改,会影响到所有文件名
但删除一个文件名,不会影响其他文件名的访问
同时,删除一个文件名,会使inode信息中的链接数减1
软链接就是再创建一个独立的文件,而中国文件会让数据的读取指向它链接的那个文件的文件名。
创建软链接的命令格式:
ln -s 源文件或目录 目标文件或目录
链接文件是为文件或目录建立链接文件
删除原始文件后,软连接无法找到原始文件,所以会报错,硬连接与原始文件的inode相同,所以不影响访问,仍旧可用
删除一个文件,实际上并不清除inode节点和block数据,只是在这个文件的父目录里面的block中删除了这个文件名
Linux是通过link的数量来控制文件的删除,只有当一个文件不存在任何link的时候,这个文件才会被删除。
备份命令格式:xfsdump -f 备份存放位置 要备份的路径或者设备文件
xfsdump 备份级别(默认为0)
0:完全备份
1-9:增量备份
xfsdump常用选项:-f,-L,-M,-s
文件恢复命令格式:xfsrestore -f 恢复文件的位置 存放恢复后文件的位置
只能备份已挂载的文件系统
必须适用root权限才能操作
只能备份xfs文件系统
备份后的数据只能用xfsrestore解析
不能备份两个具有相同UUID的文件系统
在CentOS 7中恢复xfs文件类型的数据,实验如下:
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost opt]# mkdir date
[root@localhost opt]# ls
date rh
[root@localhost opt]# mount /dev/sdb1 /date
[root@localhost opt]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 3.3G 17G 17% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 4.0G 174M 3.9G 5% /boot
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 20K 183M 1% /run/user/0
/dev/sdb1 xfs 20G 33M 20G 1% /date
[root@localhost opt]# touch /date/abc.txt
[root@localhost opt]# ls date
[root@localhost opt]# ls /date
abc.txt
[root@localhost opt]#
[root@localhost opt]# xfsdump -f /opt/xfs_dump /dev/sdb1 (备份文件到/opt下,并命名为xfs_dump)
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> xfs_dump
session label entered: "xfs_dump"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of localhost.localdomain:/date
xfsdump: dump date: Sun Nov 24 13:57:51 2019
xfsdump: session id: 0e93d020-cc1d-44ae-9a43-bf14d9add109
xfsdump: session label: "xfs_dump"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 21120 bytes
xfsdump: /var/lib/xfsdump/inventory created
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> sdb1
media label entered: "sdb1"
--------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 21672 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 15 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /opt/xfs_dump OK (success)
xfsdump: Dump Status: SUCCESS
[root@localhost opt]# rm -rf /date/*
[root@localhost opt]# ls /date
[root@localhost opt]#
[root@localhost opt]# xfsrestore -f /opt/date_dump /date/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: ERROR: stat of /opt/date_dump failed: 没有那个文件或目录
xfsrestore: Restore Status: ERROR
[root@localhost opt]# ls
date rh xfs_dump
[root@localhost opt]# xfsrestore -f /opt/xfs_dump /date/
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: localhost.localdomain
xfsrestore: mount point: /date
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Sun Nov 24 13:57:51 2019
xfsrestore: level: 0
xfsrestore: session label: "xfs_dump"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: 0992bf8f-d85f-4d18-844e-72d3002ccfdc
xfsrestore: session id: 0e93d020-cc1d-44ae-9a43-bf14d9add109
xfsrestore: media id: 10515c3e-c504-4447-8d0b-48a71a8b8168
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 1 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore: stream 0 /opt/xfs_dump OK (success)
xfsrestore: Restore Status: SUCCESS
[root@localhost opt]# ls /date/
abc.txt (成功恢复)
[root@localhost opt]#
编译安装extundelete软件包(CentOS 6)
安装依赖包
e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm
e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm
配置、编译及安装
extundelete-0.2.4.tar.bz2
实验:
此实验我们在Red hat linux 6中进行,
[root@wangermazi ~]#cd /mnt/Packages
[root@wangermazi Packages]# df -h '查看镜像文件是否挂载'
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 3.1G 16G 17% /
tmpfs 932M 76K 932M 1% /dev/shm
/dev/sda1 5.8G 168M 5.4G 3% /boot
/dev/sda3 9.7G 150M 9.0G 2% /home
/dev/sr0 3.6G 3.6G 0 100% /mnt '挂载在/mnt目录'
[root@wangermazi ~]# cd /mnt/Packages/
[root@wangermazi Packages]# ls '发现有很多软件包可以安装'
...省略部分内容
zip-3.0-1.el6.x86_64.rpm
zlib-1.2.3-29.el6.i686.rpm
zlib-1.2.3-29.el6.x86_64.rpm
zlib-devel-1.2.3-29.el6.i686.rpm
zlib-devel-1.2.3-29.el6.x86_64.rpm
zsh-4.3.10-7.el6.x86_64.rpm
[root@wangermazi Packages]# rpm -ivh e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm (安装)e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm'
warning: e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
package e2fsprogs-libs-1.41.12-18.el6.x86_64 is already installed
[root@wangermazi Packages]# rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm (安装)e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm'
warning: e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies:
libcom_err-devel = 1.41.12-18.el6 is needed by e2fsprogs-devel-1.41.12-18.el6.x86_64
pkgconfig(com_err) is needed by e2fsprogs-devel-1.41.12-18.el6.x86_64 (报错,发现要先安装依赖包)
[root@wangermazi Packages]# rpm -ivh libcom_err-devel-1.41.12-18.el6.x86_64.rpm (安装依赖包)
warning: libcom_err-devel-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:libcom_err-devel ########################################### [100%]
[root@wangermazi Packages]# rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm'
warning: e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%] (安装成功)
[root@wangermazi Packages]# mount.cifs //192.168.100.3/cccc /111
Password:
[root@wangermazi Packages]# ls /111 (发现extundelete-0.2.4.tar.bz2存在)
extundelete-0.2.4.tar.bz2 john-1.8.0.tar.gz
[root@wangermazi Packages]# cd /111 (进入111目录)
[root@wangermazi 111]# tar jxvf extundelete-0.2.4.tar.bz2 -C /opt (将压缩包解压到opt目录中)
..........省略部分信息
[root@wangermazi 111]# ls /opt (查看是否解压成功)
extundelete-0.2.4 rh
(进行编译安装)
[root@wangermazi 111]# cd /opt/extundelete-0.2.4/ (进入件文件中查看)
[root@wangermazi extundelete-0.2.4]# ls
acinclude.m4 autogen.sh configure depcomp LICENSE Makefile.in README
aclocal.m4 config.h.in configure.ac install-sh Makefile.am missing src
[root@wangermazi extundelete-0.2.4]# yum install gcc gcc-c++ -y (安装编译器)
[root@wangermazi extundelete-0.2.4]# ./configure (开始配置)
Configuring extundelete 0.2.4
Writing generated files to disk
[root@wangermazi extundelete-0.2.4]# make (make编译)
make -s all-recursive
Making all in src
extundelete.cc:571: 警告:未使用的参数‘flags’
[root@wangermazi extundelete-0.2.4]# make install (make install 安装)
Making install in src
/usr/bin/install -c extundelete '/usr/local/bin'
[root@wangermazi extundelete-0.2.4]# df -hT (挂载分区)
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 20G 3.2G 16G 18% /
tmpfs tmpfs 932M 76K 932M 1% /dev/shm
/dev/sda1 ext4 5.8G 168M 5.4G 3% /boot
/dev/sda3 ext4 9.7G 150M 9.0G 2% /home
/dev/sr0 iso9660 3.6G 3.6G 0 100% /media/RHEL_6.5 x86_64 Disc 1
/dev/sr0 iso9660 3.6G 3.6G 0 100% /mnt
/dev/sdb1 ext4 20G 172M 19G 1% /222
[root@wangermazi extundelete-0.2.4]# cd /222 (进入挂载点)
[root@wangermazi 222]# ls
lost+found
[root@wangermazi 222]# echo a>a (创建文件)
[root@wangermazi 222]# echo a>c
[root@wangermazi 222]# ls (创建成功)
a c lost+found
[root@wangermazi 222]# cd ~ (返回家目录)
[root@wangermazi ~]# umount /222 (解挂载)
[root@wangermazi ~]# rm -rf /222/a /222/c
[root@wangermazi ~]# umount /222 (解挂载/222)
[root@wangermazi ~]# extundelete /dev/sdb1 --restore-all (恢复数据)
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 160 groups loaded.
Loading journal descriptors ... 29 descriptors loaded.
Searching for recoverable inodes in directory / ...
2 recoverable inodes found. (找到两个文件)
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.
[root@wangermazi ~]# cd RECOVERED_FILES/ (进入恢复的文件中查找)
[root@wangermazi RECOVERED_FILES]# ls (误删的文件恢复成功)
a c
[root@wangermazi RECOVERED_FILES]# cp a /opt (将文件复制到目标位置)
[root@wangermazi RECOVERED_FILES]# ls /opt
a extundelete-0.2.4 rh
成功恢复
用于记录系统,程序运行中发生的各种事件
日志文件是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的“日记”
不同的日志文件记载了不同类型的信息,如Linux内核消息,用户登录时间,程序错误等
通过阅读日志,有助于诊断和解决系统故障
在Linux系统种运行的程序通常会把系统消息和错误消息写入相应的日志文件
当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹
内核及系统日志
由系统服务syslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
程序安装后不会生成日志文件,只有在启动的时候才会生成日志文件,在没有访问它时,日志文件就是空的。
Linux系统本身和大部分服务器程序的日志文件都默认存放在/var/log下
一部分程序公用一个日志文件,一部分程序适用单个日志文件,而有些大型服务器程序因日志文件较多,所以会在/var/log目录中建立相应的子目录来存放日志文件
有相当一部分日志文件只有root用户才有权读取,保证了相关日志信息的安全性
/var/log/messages:记录Linux内核消息和各种应用程序的公共日志信息,包括启动,I/O错误,网络错误,程序故障等
对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的时间记录信息
/var/log/cron:记录crond计划任务产生的事件信息
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息
/var/log/maillog:记录进入或发出系统的电子邮件活动
/var/log/lastlog:记录每个用户最近的登录时间
/var/log/secure:记录用户认证相关的安全事件信息
/var/log/wtmp:记录每个用户,注销及系统启动和停机事件
/var/log/btmp:记录失败的,错误的登录尝试及验证事件
yum安装的相关日志信息都存放在/var/log中
手工编译安装的相关日志信息都是自己指定的目录
分析日志文件的目的在于通过浏览器日志查找到关键信息,对系统服务进行测试及判断发生故障的原因等
对于大多数文本格式的日志文件(例如内核及系统日志,大多数的程序日志),只要适用tail,more,less,cat等文本处理工具就可以查看日志内容
对于一些二进制格式的日志文件(例如用户日志),需要适特定的查询命令
5.1.1 由系统服务rsyslogd统一管理
软件包:rsyslog-7.4.7-el7.x86_64
主要程序:/sbin/rsyslogd
配置文件:/etc/rsyslog.conf
5.1.2 ⭐日志消息的级别
受rsyslogd服务管理的日志文件都是Linux系统中最重要的日志文件,它们记录了Linux系统中的内核,用户认证,邮件,计划任务等最基本的系统消息
在Linux内核中,根据日志消息的重要程度不同,将其划分为不同的优先级(数字越小,优先级越高,越为重要)
内核及大多数系统消息都被记录到公共信息日志文件/var/log/messages中,而其他一些程序消息被记录到各自独立的日志文件中
日志消息还可以记录到特定的存储设备中,或者直接发送给指定用户
5.1.3 日志记录的一般格式:
[root@localhost ~]# more /var/log/messages
Nov 20 16:36:49 localhost journal: Runtime journal is using 8.0M (max allowed 91.1M, tr
ying to leave 136.7M free of 903.6M available → current limit 91.1M).
Nov 20 16:36:49 localhost kernel: Initializing cgroup subsys cpuset
Nov 20 16:36:49 localhost kernel: Initializing cgroup subsys cpu
Nov 20 16:36:49 localhost kernel: Initializing cgroup subsys cpuacct
......省略部分内容
以最后一条为例:
Nov 20 16:36:49 :时间标签
localhost : 主机名
kernel:子系统名
Initializing cgroup subsys cpu :消息字段
5.2.1 保存目录及内容
保存了用户登录,退出系统等相关信息
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录,注销及系统开,关机事件
/var/log/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
5.2.2 分析工具
users、who、w、last、lastb
查询当前用户的登录情况:users,who,w命令
示例:
[root@localhost ~]# users
root root
(root用户打开了两个终端)
who命令用户报告当前登录到系统的每个用户的信息,使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其继续审计和处理
who命令的默认输出包括用户名,终端类型,登录日期及远程主机
示例:
[root@localhost ~]# who
root :0 2019-11-24 16:42 (:0)
root pts/0 2019-11-24 16:42 (:0)
示例:
[root@localhost ~]# w
16:43:51 up 2 min, 2 users, load average: 0.68, 0.44, 0.17
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 16:42 ?xdm? 6.82s 0.07s /usr/libexec/gnome-ses
root pts/0 :0 16:42 7.00s 0.04s 0.02s w
[root@localhost ~]#
[root@localhost ~]# last
root pts/0 :0 Sun Nov 24 16:42 still logged in
root :0 :0 Sun Nov 24 16:42 still logged in
reboot system boot 3.10.0-693.el7.x Sun Nov 24 16:41 - 16:46 (00:04)
root pts/0 :0 Sun Nov 24 16:33 - 16:41 (00:08)
root :0 :0 Sun Nov 24 16:33 - crash (00:08)
reboot system boot 3.10.0-693.el7.x Sun Nov 24 16:30 - 16:46 (00:15)
root pts/0 :0 Sun Nov 24 13:51 - crash (02:38)
root :0 :0 Sun Nov 24 13:51 - crash (02:39)
reboot system boot 3.10.0-693.el7.x Sun Nov 24 13:47 - 16:46 (02:58)
root pts/0 :1 Sun Nov 24 13:47 - 13:47 (00:00)
root pts/0 :1 Sun Nov 24 13:47 - 13:47 (00:00)
root pts/0 :1 Wed Nov 20 16:43 - 16:44 (00:00)
root :1 :1 Wed Nov 20 16:42 - crash (3+21:04)
dins1 :0 :0 Wed Nov 20 16:42 - 16:42 (00:00)
reboot system boot 3.10.0-693.el7.x Wed Nov 20 16:36 - 16:46 (4+00:09)
wtmp begins Wed Nov 20 16:36:50 2019
而lastb命令用于查询登录失败的用户记录,如登录的用户名错误,密码不正确等情况等会被记录
登录失败的情况属于安全事件,因为可能有非主机用户在尝试猜出主机密码
示例:
[root@localhost ~]# lastb
wangwu :1 :1 Sun Nov 24 16:49 - 16:49 (00:00)
wangwu :1 :1 Sun Nov 24 16:49 - 16:49 (00:00)
btmp begins Sun Nov 24 16:49:19 2019
同时我们也可以通过查询日志来发现登录失败的情况
示例:
[root@localhost ~]# tail /var/log/secure
Nov 24 16:49:07 localhost passwd: pam_unix(passwd:chauthtok): password changed for wangwu
Nov 24 16:49:07 localhost passwd: gkr-pam: couldn't update the login keyring password: no old password was entered
Nov 24 16:49:12 localhost gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session opened for user gdm by (uid=0)
Nov 24 16:49:13 localhost polkitd[576]: Registered Authentication Agent for unix-session:c2 (system bus name :1.95 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Nov 24 16:49:18 localhost unix_chkpwd[2824]: password check failed for user (wangwu)
Nov 24 16:49:18 localhost gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty2 ruser= rhost= user=wangwu
Nov 24 16:49:21 localhost unix_chkpwd[2830]: password check failed for user (wangwu)
Nov 24 16:49:21 localhost gdm-password]: pam_unix(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty2 ruser= rhost= user=wangwu
Nov 24 16:49:27 localhost gdm-password]: gkr-pam: unlocked login keyring
Nov 24 16:49:28 localhost polkitd[576]: Unregistered Authentication Agent for unix-session:c2 (system bus name :1.95, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
5.3 程序日志分析
5.3.1 程序日志由相应的应用程序独立进行管理
5.3.2:分析工具
5.3.3:日志管理策略
及时做好备份和归档
延长日志保存期限
控制日志访问权限
日志中可能会包含各类敏感信息,如账户,口令等
集中管理日志
将服务器的日志文件发到统一的日志文件服务器(分布式、GFS)
便于日志信息的统一收集,整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除
本篇博客主要介绍了Linux系统中xfs与EXT文件系统的备份与文件恢复,需要注意的是,两种文件系统恢复数据最明显不同的处在于xfs文件恢复需要在挂载状态进行,而EXT文件恢复需要先解挂载再进行恢复。
我们在日常的学习、工作里需要熟练运行分析工具与日志,维护系统安全。