Linux文件与日志分析

目录

前言

一、inode与liock概述

block

inode

二、inode的内容

inode包含的元信息

查看文件对应的inode两种方式 

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

 三、inode号码

模拟inode节点耗尽处理

四 、 ext3的文件恢复

五、 日志功能与消息

日志的功能

日志文件分类

常见的一些日志文件

Linux系统内核消息级别

公共日志文件的记录格式

详细日志分析命令

总结



前言

处理Linux系统各种故障是,故障的症状是最易发现的,熟悉Linux常见的日志文件,有助于我们及时解决各种系统问题。

一、inode与liock概述

文件数据包括源信息与实际数据

文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区521字节

block

  连续的8个扇区组成一个block

   文件是存取最小单位

inode

  中文译名索引节点,也叫i节点

   用于存储文件元信息

二、inode的内容

inode包含的元信息

    文件的字节数

    文件拥有者的User ID

    文件的Group ID

    文件的读,写,执行权限

    文件的时间戳

查看文件对应的inode两种方式 

    ls -i

    stat 文件名

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

    ctime:最后一次改变文件目录的时间

    atime:最后一次访问时间

    mtime:最后一次修改文件时间

当我用vim修改文件三个时间都会改变

 三、inode号码

用户通过文件名打开文件,系统内部的过程

1系统通过这个文件名对应indoe号码

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

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

当遇到有特殊字符文件名无法删除时,可以通过inode删除文件

模拟inode节点耗尽处理
 

使用fdisk创建分区/dev/sdb1
fdisk /dev/sdb
mkfs.ext3 /dev/sdb1         设置文件格式
mkdir /test                 创建文件
mount /dev/sdb1 /test       挂载文件
df -i        

模拟inode节点耗尽故障
for ((i=1; i<=5680; i++)) ;do touch /test/file$i;done 
touch {1..5680}.txt        循环创建5680个txt文件   


结束后我们在创建一个文件会发现明明还有硬盘容量却无法创建因为节点耗尽了

四 、 ext3的文件恢复

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

1  fdisk创建分区/dev/sdc1, 格式化ext3文件系统
   fdisk /dev/sdc
   partprobe /dev/sdc
   mkfs.ext3 /dev/sdc1
   mkdir /test
   mount /dev/sdc1/test
   df -hT


2  安装依赖包
   yum -y install e2fsprogs-devel e2fsprogs-libs gcc gcc-c++ 

3  编译安装extundelete
   cd /test
   wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete
   /0.2.4/extundelete-0.2.4.tar.bz2tar jxvf extundelete-0.2.4.tar.bz2

   cd extundelete-0.2.4/
   ./configure --prefix=/usr/1ocal/extundelete && make && make install
   ln -s /usr/local/extundelete/bin/* /usr/bin/

4  模拟删除并执行恢复操作
   cd /test
   echo a>a
   echo a>becho a>c
   echo a>d
   ls
  
   extundelete /dev/sdc1 --inode 2   #查看文件系统/dev/sdc1下存在哪些文件,
   i节点是从2开始 的,2代表该文件系统最开始的目录。
   
   rm -rf a b
   extundelete /dev/sdc1 --inode 2
   cd ~
   umount /test
   extundelete /dev/sdc1 --restore-all #恢复/dev/sdc1 文件系统下的所有内容
   在当前目录下会出现一个RECOVERED_FILES/目录,里面保存了已经恢复的文件
   ls RECOVERED FILES/

五、 日志功能与消息

日志的功能

              记录系统,程序发生的各种事件

              通过阅读日志,有助于诊断和解决系统故障

日志文件分类

              内核及系统日志:由系统服务rsylog统一管理

              用户日志:记录系统用户登陆及退出相关信息

              程序日志:由各种程序独立管理的日志文件

 日志保存位置 /var/log目录下

常见的一些日志文件

1、内核及公共消息日志:
/var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。

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

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

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

Linux系统内核消息级别

0  EMERG(紧急)会导致主机系统不可用的情况
1  ALERT(警告)必须马上采取措施解决的问题
2  CRIT(严重)比较严重的情况
3  ERR (错误)运行出现错误
4  WARNING(提醒)可能影响系统功能,需要提醒用户的重要事件
5  NOTICE (注意) 不会影响正常功能,但是需要注意的事件。
6  INFO(信息)一般信息
7  DEBUG(调试)程序或系统调试信息等。

数字等级越小,优先级越高,消息越重要

公共日志文件的记录格式

时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。
程序自己维护日志记录,httpd 网站服务程序使用两个日志文件:
access_log :  #记录客户访问事件
error_log  #记录错误事件。

详细日志分析命令

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

who:命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。

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

last:命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。

lastb:命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。

总结

在Linux系统中每次故障报错都会生成日志,快速查看日志分析日志才能尽快解决故障。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值