目录
一 文件系统inode
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
二 inode 内容
- inode number 节点号
- 文件类型
- 权限
- UID
- GID
- 链接数(指向这个文件名路径名称个数)
- 该文件的大小和不同的时间戳(atime mtime ctime)
- 指向磁盘上文件的数据块指针
- 有关文件的其他数据
stat 命令 查看文件具体信息(包含inode号)
目录
目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系
文件引用一个是 inode号
是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射
linux中文件打开的过程:
1.系统找这个文件名对应的inode号
2.通过inode号,获取inode信息
3.根据inode信息,找到指向文件数据的block,最终读取数据。
cp和inode
cp 命令:
-
分配一个空闲的inode号,在inode表中生成新条目
-
在目录中创建一个目录项,将名称与inode编号关联
-
拷贝数据生成新的文件
rm 命令:
-
硬链接数递减,从而释放的inode号可以被重用
-
把数据块放在空闲列表中
-
删除目录项
-
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode
-
如果mv命令的目标和源在同一设备,
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
删除旧的目录对应关系新建目录对应关系
-
[root@localhost a]#find -inum 35667911 -exec rm {} \; #通过find命令查找indoe号来删除指定的文件 [root@localhost a]#find -inum 35667911 -delete
注意:find 命令先加查到范围,不加就是默认当前目录下。
三 日志
什么是日志?日志从哪里来?为何要管理日志?
1、日志就是程序产生的文字类和数字类信息
2、日志从linux中rsyslog程序和未来的大型程序中产生
3、日志的作用是为了统计信息和排查错误
内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下
日志的种类
[root@localhost ~]# ls /var/log
anaconda cron-20210929 messages-20210908 spooler-20210929
audit cups messages-20210929 sssd
boot.log dmesg ntpstats tallylog
boot.log-20210902 dmesg.old pluto tuned
boot.log-20210903 firewalld ppp vmware-vgauthsvc.log.0
boot.log-20210904 gdm qemu-ga vmware-vmsvc.log
boot.log-20210907 glusterfs rhsm vmware-vmusr.log
boot.log-20210908 grubby_prune_debug sa wpa_supplicant.log
boot.log-20210929 httpd samba wtmp
boot.log-20210930 lastlog secure Xorg.0.log
btmp libvirt secure-20210908 Xorg.0.log.old
btmp-20210901 maillog secure-20210929 Xorg.1.log
chrony maillog-20210908 speech-dispatcher Xorg.1.log.old
cron maillog-20210929 spooler Xorg.9.log
cron-20210908 messages spooler-20210908 yum.log
message ----核心系统日志文件
cron -------系统定时任务相关的曰志
dmesg-------系统在开机时内核自检的信息
maillog ----邮件信息的曰志
lastlog ----所有用户最后一次的登录时间的日志,这个文件也是二进制文件.不能直接用Vi 查看。而要使用
lastlog命令查看
secure------验证和授权方面的倍息
wtmp--------永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件 使用last命令查看
ulmp--------记录当前登录用户的信息 使用w、who、users等命令查看
目录中出现了 同名带时间后缀的日志文件,这个是日志轮转产生的,后面我们会再说。
日志文件的格式:
日志文件的格式包含以下 4 列:
-
事件产生的时间。
-
产生事件的服务器的主机名。
-
产生事件的服务名或程序名。
-
事件的具体信息。
信息的优先级别重要程度
在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)。
0 EMERG(紧急):会导致主机系统不可用的情况。
1 ALERT(警告):必须马上采取措施解决的问题。
2 CRIT(严重):比较严重的情况。
3 ERR(错误):运行出现错误。
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。
6 INFO(信息):一般信息。
7 DEBUG(调试):程序或系统调试信息等
last --查询用户登录的历史记录
users who w ---查询当前登录的用户情况