文件系统与日志分析

269 阅读4分钟

文件系统

文件

文件储存位置是硬盘,硬盘的最小储存单位是扇区,一个扇区512字节

八个扇区组成一个块,一个块是4K大小,是文件的最小存取单位

文件包含文件名和文件数据(实际数据和元信息)

实际数据  储存在   块中

元信息                 inode

文件名                  目录

每一个inode表记录对应保存了文件的元信息:

  • inode number 节点号

  • 文件类型

  • 文件的读、写、执行权限

  • 文件属主的UID

  • 文件属组的GID

  • 链接数(指向这个文件名路径名称个数)

  • 该文件的大小和不同的时间戳

  • 指向磁盘上文件的数据块指针

  • 有关文件的其他数据

当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

查看 inode号

ls  -i   文件名

stat    文件名

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

ctime(change time)  最后一次改变文件或目录(属性)的时间

atime(access time)   最后一次访问文件或目录的时间

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

每个文件系统(分区)中 inode 数量是有限的, 可通过 df -i 查看

移动文件或修改文件名,使用echo修改文件内容 都不会改变 inode 号 使用 vi 编辑器 修改文件 会改变 inode 号,因为 vi 编辑器是会替换原文件的

利用inode删除文件

若文件名有特殊字符无法删除,可通过inode号删除

find  -inum  inode号  -delete

find -inum  inode号   -exec rm -rf {} \;

find -inum  inode号  | xargs rm -rf 

恢复ext类型的文件

extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在centos6版本恢复)

Linux 系统下载文件 wget http://.... [-O 另保存目录] 

 curl -L http:// [-o 另保存目录] 

#安装依赖包 yum -y install e2fsprogs-devel e2fsprogs-libs

#编译安装 extundelete

cd /test   (test为挂载点)

wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

tar jxvf extundelete-0.2.4.tar.bz2 

cd extundelete-0.2.4/ 

./configure --prefix=/usr/local/extundelete && make && make install 

ln -s /usr/local/extundelete/bin/* /usr/bin/   (将bin目录链接到/usr/bin/方便系统识别)

误删之后要取消挂载,防止写入新的数据

命令

extundelete /dev/sdc1 --inode 2   #查看文件系统/dev/sdc1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。

extundelete /dev/sdc1 --restore-all #恢复/dev/sdc1 文件系统下的所有内容

#在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件 ls RECOVERED_FILES/

xfs类型文件备份和恢复

CentOS 7 系统默认采用 xfs类型的文件,xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。 xfsdump 的备份级别有两种:0 表示完全备份;1-9 表示增量备份。xfsdump 的备份级别默认为 0。

日志系统

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

主要日志:

  1. 内核及公共消息日志:/var/log/messages 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

  2. 计划任务日志: /var/log/cron:记录crond计划任务产生的事件信息。

  3. 系统引导日志: /var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。

  4. 邮件系统日志: /var/log/maillog:记录进入或发出系统的电子邮件活动。

   5.用户登录日志: /var/log/secure:记录用户认证相关的安全事件信息。 

                     /var/log/lastlog:记录每个用户最近的登录事件。二进制格式 

                    /var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。二进制格式 

                    /var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式

内核及系统日志由系统服务 rsyslog 统一管理,主配置文件为/etc/rsyslog.conf 

Linux系统内核日志消息的优先级别

0 emerg 紧急 

1 alert 警告 

2 crit 严重 

3 err 错误 

4 warning 提醒 

5 notice 注意 

6 info 信息 

7 debug 调试