CentOS 7文件系统与日志分析
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Linux 文件系统在处理 Linux 系统出现的各种故障时,故障的症状是最易发现的,而导致这一故障的原因才是最终排除故障的关键。熟悉 Linux 系统中常见的日志文件,了解一般故障的分析与解决办法,
千家信息网最后更新 2025年12月02日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.txtinode的大小
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_64inode的特殊作用
- 由于
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.log2、通过宿主机访问搭建的网站后,查看系统程序的日志文件
[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安全错误
数据库的锁怎样保障安全
网络安全产品叫什么系列
信息处理技术员考数据库吗
数据库会话和事务的区别
大一计算机网络技术考试试题
异度之刃2怎么进国行服务器
服务器 内存条
镇海游戏软件开发设计
软件开发合同追加预算
内部网络安全会议
绝地大逃杀服务器架设
sql图书管理员数据库表
罗布乐思怎么加入其他服务器
万方数据库查询
网络安全大赛李现
网络安全和信息化第二次会议
网络安全法律知识读本
中国网络安全看湖南
数据库怎么清日志
怎么进入网络数据库
大连云创互联网络科技有限公司
网络安全与支付系统教学
移动公司服务器
服务器 关机好吗
宽带服务器一般几个灯
腾讯服务器镜像系统怎么选择
谷歌地球打开显示服务器错误
呈贡区创新软件开发价格走势
我来做服装定制软件开发
简述常用的数据库
dayz服务器教程