Linux文件系统与日志分析----------模拟恢复EXT、XFS类型文件实验

一、inode与block

1.1 inode内容

▶使用 stat 命令即可查看某个文件的 inode 信息

 [root@localhost ~]# stat anaconda-ks.cfg
   File: ‘anaconda-ks.cfg’
Size: 1424	Blocks: 8	IO Block: 4096	regular file
Device: fd00h/64768d Inode: 100663363	Links: 1
Access: (0600/-rw-------)   Uid: (	0/	root)	Gid: (	0/	root) Access: 2018-11-07 03:28:01.914327950 -0500
Modify: 2018-11-07 06:45:44.506987401 -0500
Change: 2018-11-07 06:45:44.506987401 -0500
Birth: -

▶Linux 系统文件有三个主要的时间属性,分别是ctime(change time), atime(access time), mtime(modify time)
①ctime(change time) :最后一次改变文件或目录(属性)的时间,例如执行 chmod, chown 。
②atime(access time):最后一次访问文件或目录的时间。
③mtime(modify time):最后一次修改文件或目录(内容)的时间。

二、硬连接和软连接

2.1 链接文件

▶软连接:一种类似于 Windows 的快捷方式功能的文件,可以快速连接到目标文件或目录。
▶硬连接:通过文件系统的 inode 链接来产生的新文件名,而不是产生新文件。

三、恢复误删除的文件

3.1 EXT类型文件恢复

    ▶编译安装 extundelete,在编译安装之前需要先安装两个依赖包e2fsprogs-libs 和e2fsprogs-devel, 这两个包在系统安装光盘的/Package 目录下就有,可使用 rpm 或 yum 命令将其安装。
[root@localhost ~]# yum -y install e2fsprogs-devel e2fsprogs-libs
[root@localhost	~]#	wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar. bz2
[root@localhost ~]# tar jxvf extundelete-0.2.4.tar.bz2  ##解压##
[root@localhost ~]# cd extundelete-0.2.4/
[root@localhost extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete && make && make install  ##安装,ake编译和extundelete##
[root@localhost extundelete-0.2.4]# ln -s /usr/local/extundelete/bin/* /usr/bin/

▶模拟删除并执行恢复操作,使用 fdisk 命令创建新分区,将其挂载到/opt目录下,往该目录下新建一些文件或目录

[root@localhost ~]# mkfs.ext3 /dev/sdb1 
[root@localhost ~]# mkdir /data/
[root@localhost ~]# mount /dev/sdb1 /data/
[root@localhost ~]# cd /data/ 
[root@localhost test]# echo a > a 
[root@localhost test]# echo b > b 
[root@localhost test]# echo c > c 
[root@localhost test]# echo d > d 
[root@localhost test]# rm -rf a b
[root@localhost ~]# umount /data/     ##卸载##
[root@localhost ~]# extundelete /dev/sdb1 --restore-all ##恢复##
[root@localhost ~]# ls
anaconda-ks.cfg extundelete-0.2.4 extundelete-0.2.4.tar.bz2 RECOVERED_FILES [root@localhost ~]# cd RECOVERED_FILES/
[root@localhost RECOVERED_FILES]# ls
a b               ##发现恢复成功##

3.2 xfs类型文件备份和恢复

▶xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。若系统中未安装xfsdump 与xfsrestore 工具,可以通过yum install -y xfsdump 命令安装。下面通过一个案例来备份恢复 xfs 类型的文件。首先添加一款新硬盘并格式化为 xfs 类型的文件系统,然后挂在到/date 目录下。

[root@localhost ~]# mkfs.xfs /dev/sdb1
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data/
[root@localhost ~]# cd /data
[root@localhost data]# cp /etc/passwd ./ 
[root@localhost data]# mkdir test 
[root@localhost data]# touch test/a 
[root@localhost data]# tree /data
[root@localhost ~]# 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 ~]# cd /data/ 
[root@localhost date]# ls 
 passwd test
[root@localhost date]# rm -rf ./*   ##删除之前创建的内容,模拟数据丢失##
[root@localhost date]# ls   ##查看,什么都没了##
[root@localhost ~]# xfsrestore -f /opt/dump_sdb1 /data/
.............
 xfsrestore: Restore Status: SUCCESS [root@localhost ~]# ls /data/
passwd test     ##恢复成功##

四、 日志文件的分类

4.1 主要日志文件

■在 Linux 操作系统中,日志数据主要包括以下三种类型:
▶内核及系统日志:由系统服务 rsyslog 统一管理,日志格式基本相似。
▶用户日志:用于记录 Linux 操作系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
▶程序日志:用于记录本程序运行过程中的各种事件信息,格式不统一。

■常见日志文件:
▶/var/log/messages:记录 Linux 内核消息及各种应用程序的公共日志信息,包括启动、I/0 错误、网络错误、程序故障等。
▶/var/log/cron:记录 crond 计划任务产生的事件信息。
▶/var/log/dmesg:记录 Linux 操作系统在引导过程中的各种事件信息。
▶/var/log/maillog:记录进入或发出系统的电子邮件活动。
▶/var/log/lastlog:记录每个用户最近的登录事件。
▶/var/log/secure:记录用户认证相关的安全事件信息。
▶/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
▶/var/log/btmp:记录失败的、错误的登录尝试及验证事件。

4.2 日志文件分析

4.2.1 内核及系统日志文件

■在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同的优先级别(数字等级越小,优先级越高,消息越重要)。

4.2.2 用户日志文件

▶查询当前登录的用户情况——users、who、w 命令
①users :简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。
在这里插入图片描述

②who :用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用户名、终端类型、登录日期及远程主机。
在这里插入图片描述
③w:用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的输出内容要丰富一些。
在这里插入图片描述
▶查询用户登录的历史记录——last、lastb 命令
①last:用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。通过last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵。

在这里插入图片描述
②lastb:用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,也可以直接从安全日志文件/var/log/secure 中获得相关信息。
在这里插入图片描述

4.2.3 程序日志文件

▶在 Linux 操作系统中,还有相当一部分应用程序没有使用 rsyslog 服务来管理日志,而是由程序自己维护日志记录。例如,httpd 网站服务程序使用两个日志文件 access_log 和error_log 分别记录客户访问事件和错误事件
☆若出现以下现象需要多加注意:
●用户在非常规的时间登录,或者用户登录系统的 IP 地址和以往的不一样
●用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录。
●非法使用或不正当使用超级用户权限。
●无故或者非法重新启动各项网络服务的记录。
●不正常的日志记录,如日志残缺不全,或者是诸如 wtmp 这样的日志文件无故缺少了中间的记录文件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值