文章目录
一、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 这样的日志文件无故缺少了中间的记录文件。