深入理解Linux文件系统

日志文件功能

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

链接文件

硬链接

一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。

ln命令可以创建硬链接:

ln 源文件 目标文件

运行上面这条命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中有一项叫做"链接数",记录指向该inode的文件名总数,这时就会增加1。反过来,删除一个文件名,就会使得inode节点中的"链接数"减1。当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。

这里顺便说一下目录文件的"链接数"。创建目录时,默认会生成两个目录项:".“和”…"。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。所以,任何一个目录的"硬链接"总数,总是等于2加上它的子目录总数(含隐藏目录),这里的2是父目录对其的“硬链接”和当前目录下的".硬链接“。

软链接

除了硬链接以外,还有一种特殊情况。文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。

这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:“No such file or directory”。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。

ln -s 命令可以创建软链接。

inode和block

block

文件是存储在硬盘上的,硬盘最小存储叫做扇区,每个扇区512字节,8个扇区组成的一个Block块
文件的数据包括二部分:1、元信息(inode) 2、实际数据(block)
block(块):是文件存取的最小单位,连续的八个扇区组成一个block

inode

inode(索引节点):也叫i节点。用于存储文件元信息
元信息
文件的字节数
文件拥有者UserID
文件的GroupID
文件的rwx权限(读、写、执行)
文件时间戳
查看inode信息:stat命令

[root@localhost ~]# stat 1
  文件:"1"
  大小:6         	块:0          IO 块:4096   目录
设备:802h/2050d	Inode:74666       硬链接:2
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-05-18 00:12:24.169002565 +0800
最近更改:2021-05-18 00:12:24.169002565 +0800
最近改动:2021-05-18 00:12:24.169002565 +0800
创建时间:-

查看inode号码的方法
li -i命令:直接查看当前目录文件名的所对应的inode信息

[root@localhost ~]# ll -i
总用量 8
    74666 drwxr-xr-x. 2 root root    6 518 00:12 1
537174915 -rw-------. 1 root root 1764 422 22:03 anaconda-ks.cfg
537174917 -rw-r--r--. 1 root root 1812 422 22:05 initial-setup-ks.cfg
537419411 -rw-r--r--. 1 root root    0 512 21:43 tom
268484062 drwxr-xr-x. 2 root root    6 512 19:42 公共
    74759 drwxr-xr-x. 2 root root    6 512 19:42 模板
268484063 drwxr-xr-x. 2 root root    6 512 19:42 视频
    74760 drwxr-xr-x. 2 root root    6 512 19:42 图片
537419393 drwxr-xr-x. 2 root root    6 512 19:42 文档
806894429 drwxr-xr-x. 2 root root    6 512 19:42 下载
806894430 drwxr-xr-x. 2 root root    6 512 19:42 音乐
537419392 drwxr-xr-x. 2 root root    6 512 19:42 桌面
[root@localhost ~]# ll -i 1

ls-ai命令:直接查看当面目录的文件及隐藏文件的所对应的inode信息

[root@localhost ~]# ls -ai
537174913 .   537174915 anaconda-ks.cfg  538972280 .bash_profile      74746 .config  537419395 .esd_auth             537419380 .local   537174955 .viminfo         74759 模板  537419393 文档  537419392 桌面
       64 ..  537174966 .bash_history    538972281 .bashrc        538972282 .cshrc   537419379 .ICEauthority         538972283 .tcshrc  537419300 .Xauthority  268484063 视频  806894429 下载
    74666 1   538972279 .bash_logout         75049 .cache         268484129 .dbus    537174917 initial-setup-ks.cfg  537419411 tom      268484062 公共             74760 图片  806894430 音乐

inode大小 :df -i 命令就可以查看每个分区的对应inode总数和已经使用的inode数量

[root@localhost ~]# df -i
文件系统           Inode 已用(I)   可用(I) 已用(I)% 挂载点
/dev/sda2      155610624  156911 155453713       1% /
devtmpfs          228958     422    228536       1% /dev
tmpfs             232906       1    232905       1% /dev/shm
tmpfs             232906     968    231938       1% /run
tmpfs             232906      16    232890       1% /sys/fs/cgroup
/dev/sda1          92520     341     92179       1% /boot
tmpfs             232906      18    232888       1% /run/user/1000
/dev/sr0               0       0         0        - /run/media/chx/CentOS 7 x86_64
tmpfs             232906       1    232905       1% /run/user/0

👁inode特殊作用

  • 当文件名包含特殊字符,可能无法正常删除。这时直接删除 inode,能够起到删除文 件的作用
  • 移动文件或重命名文件,只是改变文件名,不影响 inode 号码;
  • 打开一个文件以后,系统就以 inode 号码来识别这个文件,不再考虑文件名。

分析日志文件

日志文件都默认放在目录/var/log/下

日志文件功能:用于记录系统,程序运行中发生的各种事件
通过日志文件,有助于诊断和解决系统故障
日志文件分类:

内核及系统日志:由系统服务 rsyslog 统一管理,这些程序使 用的日志记录具有相似的格式
用户日志:用于记录 Linux 操作系统用户登录及退出系统的相关信息, 包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给 rsyslog 服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管 理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。

日志主要介绍

  • 计划任务日志/var/log/cron:记录 crond 计划任务产生的事件信息
  • 系统引导日志/var/log/dmesg:记录 Linux 操作系统在引导过程中的各种事件信息
  • 邮件系统日志/var/log/maillog:记录进入或发出系统的电子邮件活动。
  • 用户登录日志
    /var/log/lastlog:记录每个用户最近的登录事件。
    /var/log/secure:记录用户认证相关的安全事件信息
    /var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件
    /var/log/btmp:记录失败的、错误的登录尝试及验证事件

日志文件分析

/var/log/lastlog:最近的登录事件。
/var/log/wtmp:用户登录注销及系统开关机事件
/var/log/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
分析工具:who、w、users、last 和 lastb
1.查询当前登录的用户情况——users、who、w 命令
users 命令:简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。
who 命令:用于报告当前登录到系统中的每个用户的信息。默认输出包括用 户名、终端类型、登录日期及远程主机
2.查询用户登录的历史记录——last、lastb 命令

根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)

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

程序日志分析

由相应的应用程序独立进行管理
1,Web服务:/var/log/httpd/
access_log , error_log
2,代理服务:/var/log/squid/
access.log , cache.log
3,FTP服务:/var/log/xferlog
分析工具
文本查看,grep过滤检索,webmin管理套件查看
awk,sed文本过滤,格式化编辑工具
专用日志分析工具

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值