千家信息网

CentOS 7文件系统与日志分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Linux 文件系统在处理 Linux 系统出现的各种故障时,故障的症状是最易发现的,而导致这一故障的原因才是最终排除故障的关键。熟悉 Linux 系统中常见的日志文件,了解一般故障的分析与解决办法,
千家信息网最后更新 2026年11月01日CentOS 7文件系统与日志分析

Linux 文件系统

在处理 Linux 系统出现的各种故障时,故障的症状是最易发现的,而导致这一故障的原因才是最终排除故障的关键。熟悉 Linux 系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点、"对症下药"、并及时解决各种系统问题。

inode 与 block 详解

  • 文件存储再硬盘上,硬盘最小存储单位是"扇区",每个扇区存储512字节

  • 文件数据包括元信息与实际数据

  • 元信息包含文件属性信息,文件打开来输入的内容为实际数据

  • block(块)

    • 连续的八个扇区组成一个block (4k)
    • 是文件存取的最小单位
  • inode(索引节点)
    • 中文译名为"索引节点",也就i节点
    • 用于存储文件元信息

inode的内容

inode包含文件的元信息
  • 文件的字节数
  • 文件拥有着的User ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳
  • ……
使用stat命令查看inode信息
[root@localhost mnt]# stat abc.txt           //查看abc文件inode信息  文件:"abc.txt"  大小:12         块:8          IO 块:4096   普通文件设备:802h/2050d   Inode:18123362    硬链接:1权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)环境:unconfined_u:object_r:mnt_t:s0最近访问:2019-09-02 04:12:18.210370997 +0800最近更改:2019-09-02 04:12:18.210370997 +0800最近改动:2019-09-02 04:12:18.210370997 +0800创建时间:-
Linux系统文件三个主要的时间属性
  • ctime(change time):最后一次改变文件或目录(属性)的时间
  • atime(access time):最后一次访问文件或目录的时间
  • mtime(modify time):最后一次修改文件或目录(内容)的时间
目录文件的结构
  • 目录也是文件
  • 目录文件的结构

  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
  • Linux系统内部不使用文件名,而使用inode号命来识别文件
  • 对于用户来说,文件名只是inode号码便于识别的别称
inode的号码
  • 用户通过文件名打开文件时,系统内部的过程

    • 系统找到这个文件名对应的inode号码
    • 通过inode号码,获取inode信息
    • 根据inode信息,找到文件数据所在的block,读出数据
  • 查看inode号码的方法
    • ls -i命令:查看文件名对应的inde号码
[root@localhost mnt]# ls -i abc.txt           //查看文件节点信息 18123362 abc.txt
inode的大小
  • inode也会消耗硬盘空间,每个inode的大小,一般时128字节或256字节

  • 格式化文件系统时确定inode的总数

  • 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
[root@localhost mnt]# df -i               //查看分区节点信息文件系统          Inode 已用(I)  可用(I) 已用(I)% 挂载点/dev/sda2      10485760  121203 10364557       2% /devtmpfs         229708     376   229332       1% /devtmpfs            233381       1   233380       1% /dev/shmtmpfs            233381     560   232821       1% /runtmpfs            233381      16   233365       1% /sys/fs/cgroup/dev/sda5       5241856     146  5241710       1% /home/dev/sda1       3145728     328  3145400       1% /boottmpfs            233381       6   233375       1% /run/user/42tmpfs            233381      17   233364       1% /run/user/0/dev/sr0              0       0        0        - /run/media/root/CentOS 7 x86_64
inode的特殊作用
  • 由于inode号码与文件名分离,导致一些Linux系统具有以下的现象
    • 当文件名包换特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
    • 按节点号删除文件命令:find ./* -inum [节点号] -delete
[root@localhost mnt]# ls -i16777284 ac1.txt  18123362 ac2.txt  18123366 ac3.txt  18123370 ac4.txt  18123371 ac5.txt[root@localhost mnt]# find ./* -inum 16777284 -delete[root@localhost mnt]# ls -i18123362 ac2.txt  18123366 ac3.txt  18123370 ac4.txt  18123371 ac5.txt
  • 移动或重命名文件时,只改变文件名,不影响inode号码
[root@localhost mnt]# ls -i18123362 ac2.txt  18123366 ac3.txt  18123370 ac4.txt  18123371 ac5.txt[root@localhost mnt]# mv ac2.txt /opt[root@localhost mnt]# ls -i /opt18123362 ac2.txt   1389838 rh
  • 打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
访问文件的简单流程

xfs 类型文件备份和恢复

xfs文件的恢复需要我们先把文件备份到另一块磁盘,当文件损坏时可以通过备份的文件进行恢复(这里面的备份文件是通过对文件做固定格式的压缩来进行备份)。

  • xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。若系统中未安装xfsdump 与 xfsrestore 工具,可以通过yum来安装工具。
[root@localhost mnt]# yum install xfsdump -y已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn正在解决依赖关系--> 正在检查事务---> 软件包 xfsdump.x86_64.0.3.1.4-1.el7 将被 升级---> 软件包 xfsdump.x86_64.0.3.1.7-1.el7 将被 更新...//省略部分内容...
  • 命令格式

    xfsdump -f 备份存放位置 要备份的路径或设备文件

  • xfsdump 的备份级别有两种

    • 0:表示完全备份(默认为0)
    • 1~9:表示增量备份
  • 常用的备份参数
    • -f:指定备份文件目录
    • -L:指定标签 session label
    • -M:指定设备标签 media label
    • -s:备份单个文件,-s 后面不能直接跟路径。
[root@localhost ~]# fdisk /dev/sdb          //创建新磁盘欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0x57599cea 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): p分区号 (1-4,默认 1):起始 扇区 (2048-41943039,默认为 2048):将使用默认值 2048Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):将使用默认值 41943039分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。[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=0data     =                       bsize=4096   blocks=5242624, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal log           bsize=4096   blocks=2560, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0[root@localhost ~]# mkdir /opt/data           //创建挂载点[root@localhost ~]# mount /dev/sdb1 /opt/data   //挂载创建的磁盘[root@localhost ~]# cp /etc/passwd /opt/data   //将passwdd目录复制到挂载的磁盘中[root@localhost ~]# ls /opt/data              //查看文件passwd[root@localhost ~]# xfsdump -f /mnt/xfs_dump /dev/sdb1  //使用命令备份文件xfsdump: using file dump (drive_simple) strategyxfsdump: version 3.1.7 (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:/opt/dataxfsdump: dump date: Mon Sep  2 05:27:29 2019xfsdump: session id: 96c17954-e969-4041-9d9e-4bd59746ddabxfsdump: session label: "xfs_dump"xfsdump: ino map phase 1: constructing initial dump listxfsdump: ino map phase 2: skipping (no pruning necessary)xfsdump: ino map phase 3: skipping (only one dump stream)xfsdump: ino map construction completexfsdump: estimated dump size: 25216 bytesxfsdump: /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 mapxfsdump: dumping directoriesxfsdump: dumping non-directory filesxfsdump: ending media filexfsdump: media file size 24264 bytesxfsdump: dump size (non-dir files) : 2592 bytesxfsdump: dump complete: 13 seconds elapsedxfsdump: Dump Summary:xfsdump:   stream 0 /mnt/xfs_dump OK (success)xfsdump: Dump Status: SUCCESS                    //备份成功[root@localhost ~]# rm -rf /opt/data/*          //删除磁盘中文件[root@localhost ~]# ls /opt/data                 //查看文件是否删除[root@localhost ~]# xfsrestore -f /mnt/xfs_dump /opt/data    //执行命令恢复文件xfsrestore: using file dump (drive_simple) strategyxfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and controlxfsrestore: searching media for dumpxfsrestore: examining media file 0xfsrestore: dump description: xfsrestore: hostname: localhost.localdomainxfsrestore: mount point: /opt/dataxfsrestore: volume: /dev/sdb1xfsrestore: session time: Mon Sep  2 05:27:29 2019xfsrestore: level: 0xfsrestore: session label: "xfs_dump"xfsrestore: media label: "sdb1"xfsrestore: file system id: 2e3df4e8-dd92-46f7-84ca-f254c4e579bdxfsrestore: session id: 96c17954-e969-4041-9d9e-4bd59746ddabxfsrestore: media id: d27aafc8-a405-4a8f-b7f0-1a018a7026eexfsrestore: using online session inventoryxfsrestore: searching media for directory dumpxfsrestore: reading directoriesxfsrestore: 1 directories and 1 entries processedxfsrestore: directory post-processingxfsrestore: restoring non-directory filesxfsrestore: restore complete: 0 seconds elapsedxfsrestore: Restore Summary:xfsrestore:   stream 0 /mnt/xfs_dump OK (success)xfsrestore: Restore Status: SUCCESS[root@localhost ~]# ls /opt/data          //查看文件是否恢复passwd                                 //成功恢复文件
  • xfsdump使用的限制
    • 只能备份已挂载的文件系统
    • 必须使用root的权限才能操作
    • 只能备份XFS文件系统
    • 备份后的数据只能让xfsrestore解析
    • 不能备份两个具有相同UUID的文件系统

日志文件

日志的功能

  • 用于记录系统、程序运行中发生的各种事件
  • 通过阅读日志,有助于诊断和解决系统故障

日志文件的分类

  • 内核及系统日志

    • 由系统服务syslog统一进行管理,日志格式基本相似
  • 用户日志

    • 记录系统用户登录及退出系统的相关信息
  • 程序日志
    • 由各种应用程序独立管理的日志文件,记录格式不统一

日志保存位置

  • 默认位于/var/log目录下

主要日志文件介绍

  • 内核及公共消息日志:/var/log/messages

  • 计划任务日志:/var/log/cron

  • 系统引导日志:/var/log/dmesg

  • 邮件系统日志:/var/log/maillog

  • 用户登录日志:/var/log/lastlog、 /var/log/secure、 /var/log/wtmp、 /var/run/btmp

日志的管理

  • 由系统服务rsyslogd统一管理
    • 软件包:reyelog-7.4.7-16.el7.x86_64
    • 主要程序:/sbin/rsyslogd
    • 配置文件:/etc/rsyslog.conf
[root@localhost ~]# vim /etc/rsyslog.conf      //查看日志文件配置信息# rsyslog configuration file# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html#### MODULES ##### The imjournal module bellow is now used as a message source instead of imuxsock.$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imjournal # provides access to the systemd journal#$ModLoad imklog # reads kernel messages (the same are read from journald)#$ModLoad immark  # provides --MARK-- message capability# Provides UDP syslog reception#$ModLoad imudp#$UDPServerRun 514# Provides TCP syslog reception#$ModLoad imtcp#$InputTCPServerRun 514#### GLOBAL DIRECTIVES ##### Where to place auxiliary files$WorkDirectory /var/lib/rsyslog# Use default timestamp format$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat...//省略部分内容...[root@localhost ~]# cd /var/log         //查看日志文件目录[root@localhost log]# lsanaconda  dmesg               libvirt   rhsm               tallylog                Xorg.0.logaudit     dmesg.old           maillog   sa                 tuned                   Xorg.0.log.oldboot.log  firewalld           messages  samba              vmware-vgauthsvc.log.0  Xorg.1.logbtmp      gdm                 ntpstats  secure             vmware-vmsvc.log        Xorg.9.logchrony    glusterfs           pluto     speech-dispatcher  vmware-vmusr.log        yum.logcron      grubby_prune_debug  ppp       spooler            wpa_supplicant.logcups      lastlog             qemu-ga   sssd               wtmp
  • 查看系统日志文件

    [root@localhost log]# vim messages                  //查看系统日志文件Aug 10 03:53:40 localhost journal: Runtime journal is using 8.0M (max allowed 91.1M, trying to leave 136.7M free of 903.6M available → current limit 91.1M).Aug 10 03:53:40 localhost kernel: Initializing cgroup subsys cpusetAug 10 03:53:40 localhost kernel: Initializing cgroup subsys cpuAug 10 03:53:40 localhost kernel: Initializing cgroup subsys cpuacctAug 10 03:53:40 localhost kernel: Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc  version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017Aug 10 03:53:40 localhost kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-693.el7.x86_64   root=UUID=729c9a26-dfdc-40f9-ae91-1ade55be51bb ro crashkernel=auto rhgb quiet LANG=zh_CN.UTF-8Aug 10 03:53:40 localhost kernel: Disabled fast string operationsAug 10 03:53:40 localhost kernel: e820: BIOS-provided physical RAM map:Aug 10 03:53:40 localhost kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usableAug 10 03:53:40 localhost kernel: BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reservedAug 10 03:53:40 localhost kernel: BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved...//省略部分内容...
  • last命令查看用户登录日志
[root@localhost log]# lastroot     pts/0        192.168.144.1    Mon Sep  2 05:17   still logged in   reboot   system boot  3.10.0-693.el7.x Mon Sep  2 05:17 - 05:58  (00:40)    root     pts/0        192.168.144.1    Mon Sep  2 04:11 - crash  (01:05)    root     :0           :0               Mon Sep  2 04:11 - crash  (01:05)    reboot   system boot  3.10.0-693.el7.x Mon Sep  2 04:10 - 05:58  (01:47)    root     pts/0        :0               Sun Aug 25 01:10 - 01:10  (00:00)    root     :0           :0               Sun Aug 25 01:10 - crash (8+03:00)   ...//省略部分内容...
  • lastb查看用户登录次数日志
[root@localhost log]# lastbroot     :0           :0               Sun Aug 25 01:10 - 01:10  (00:00)    root     :1           :1               Sat Aug 10 06:26 - 06:26  (00:00)    btmp begins Sat Aug 10 06:26:22 2019
  • 查看程序日志文件

    1、安装httpd服务,搭建Apache网站服务;然后关闭防火墙,使宿主机可以访问

[root@localhost ~]# yum install httpd -y   //安装httpd服务已加载插件:fastestmirror, langpacksLoading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * updates: centos.ustc.edu.cn正在解决依赖关系--> 正在检查事务---> 软件包 httpd.x86_64.0.2.4.6-89.el7.centos.1 将被 安装...//省略部分内容...[root@localhost ~]# systemctl start httpd              //开启服务[root@localhost ~]# systemctl stop firewalld.service    //关闭防火墙[root@localhost ~]# setenforce 0                       [root@localhost ~]# cd /var/log               //查看日志文件目录,看是否生成httpd日志闻文件目录[root@localhost log]# lsanaconda  dmesg               lastlog   qemu-ga            sssd                    wtmpaudit     dmesg.old           libvirt   rhsm               tallylog                Xorg.0.logboot.log  firewalld           maillog   sa                 tuned                   Xorg.0.log.oldbtmp      gdm                 messages  samba              vmware-vgauthsvc.log.0  Xorg.1.logchrony    glusterfs           ntpstats  secure             vmware-vmsvc.log        Xorg.9.logcron      grubby_prune_debug  pluto     speech-dispatcher  vmware-vmusr.log        yum.logcups      httpd               ppp       spooler            wpa_supplicant.log

2、通过宿主机访问搭建的网站后,查看系统程序的日志文件

[root@localhost log]# cd httpd    //进入httpd程序目录[root@localhost httpd]# ls access_log  error_log[root@localhost httpd]# vim access_log     //查看程序日志文件192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /noindex/css/bootstrap.min.css HTTP/1.1" 200 19341 "http://192.168.144.133/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /noindex/css/open-sans.css HTTP/1.1" 200 5081 "http://192.168.144.133/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /images/apache_pb.gif HTTP/1.1" 200 2326 "http://192.168.144.133/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /images/poweredby.png HTTP/1.1" 200 3956 "http://192.168.144.133/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /noindex/css/fonts/Light/OpenSans-Light.woff HTTP/1.1" 404 241 "http://192.168.144.133/noindex/css/open-sans.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /noindex/css/fonts/Bold/OpenSans-Bold.woff HTTP/1.1" 404 239 "http://192.168.144.133/noindex/css/open-sans.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"192.168.144.1 - - [02/Sep/2019:06:12:48 +0800] "GET /noindex/css/fonts/Bold/OpenSans-Bold.ttf HTTP/1.1" 404 238 "http://192.168.144.133/noindex/css/open-sans.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) 

日志消息的级别

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

日志管理策略

  • 及时做好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限
  • 日志中可能会包含各类敏感信息,如账户、口令等

集中管理日志

  • 将服务器的日志文件发到统一的日志文件服务器

  • 便于日志信息的同一收集、整理和分析
  • 杜绝日志信息的意外丢失、恶意篡改或删除
文件 日志 系统 备份 信息 目录 号码 命令 文件名 磁盘 程序 内容 服务 故障 用户 节点 数据 时间 格式 管理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 广东猪兼强互联网科技有限公司 深圳互联网络科技有限公司 远信互联网科技 唐信互联网科技 大连 现代科技和互联网有关系吗 栖莱科技互联网股份有限公司 荆州市昕露互联网络科技有限公司 语蝶互联网科技有限公司 移动互联网年度科技创新 浙南科技城互联网大厦建设工程 互联网第三次科技革命特征 互联网科技快讯热点 上海创道互联网络科技有限公司 卡尔迅互联网科技有限公司 互联网科技企业商标注意事项 广州智享互联网科技 张家口科技产业互联网平台 深圳互联网科技园地址 科技互联网专业务虚会材料 互联网黑科技 互联网的科技创新 壕鑫互联网络科技 赫美联合互联网科技 甘肃拓世互联网科技有限公司 厦门比较好的科技互联网公司 翼展科技 首家互联网医院 互联网时代的科技公司 风投北京互联网科技 信承诺互联网科技有限公司
0