Linux文件系统
inode表结构
每一个inode表记录对应的保存了以下信息:
-
inode number 节点号
-
文件类型
-
权限
-
UID
-
GID
-
链接数(指向这个文件名路径名称个数)
-
该文件的大小和不同的时间戳
-
指向磁盘上文件的数据块指针
-
有关文件的其他数据
ls -i:查看inode号
stat:也可以查看设备inode号
#stat会显示设备变动的时间
3个时间
atime:最后一次查看文件的时间
mtime:最近更改文件内容的时间;更改完内容之后ctime也会改变
ctitme:最近更改文件元信息的时间,比如改权限等
inode表 也会占用磁盘空间
cp和inode
-
分配一个空闲的inode号,在inode表中生成新条目
-
在目录中创建一个目录项,将名称与inode编号关联
-
拷贝数据生成新的文件
rm和inode
-
硬链接数递减,从而释放的inode号可以被重用
-
把数据块放在空闲列表中
-
删除目录项
-
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode
-
如果mv命令的目标和源在同一设备,
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
删除旧的目录对应关系新建目录对应关系
硬链接和软链接与inode
硬链接 | 软链接 | |
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,连接数会增加,删除会减少 | 新建和删除都不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是连接数减一,但连接文件的访问不受影响 |
无法访问连接的文件 |
文件类型 | 和源文件相同 | 路径文件和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径长度 |
日志
内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下
日志文件的格式主要为:
- 事件产生的时间
- 产生事件的服务器的主机名
- 产生事件的服务名或程序名
- 事件的具体信息
常见的一些日志文件:
/var/log/messages | 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出 |
内核和公共日志 | |
/var/log/cron | 记录与系统定时任务相关的日志 |
计划任务日志 | |
/var/log/dmesg | 记录了系统在开机是内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
系统引导日志 | |
/var/log/maillog |
记录邮件信息的日志 |
邮件日志 | |
/var/log/lastlog | 记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看 |
/var/log/secure |
记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
/var/log/wtmp |
记永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看 |
/var/log/ulmp |
记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看 |
用户日志 |
在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)
0 | EMERG (紧急) | 会导致主机系统不可用的情况 |
1 | ALERT (警告) | 必须马上采取措施解决的问题 |
2 | CRIT (严重) | 比较严重的情况 |
3 | ERR (错误) | 运行出现错误 |
4 | WARNING(提醒) | 可能影响系统功能,需要提醒用户的重要事件 |
5 | NOTICE (注意) | 不会影响正常功能,但是需要注意的事件 |
6 | INFO (信息) | 一般信息 |
7 | DEBUG (调试) | 程序或系统调试等信息 |
用户日志:
在wtmp、btmp、lastlog等日志中,保存了系统用户登录、退出等相关的事件信息,
但是这些文件都是二进制的数据文件,不能直接tail、less等文本查看工具进行查看,
需要使用who、w、user、last和lastb等用户查询命令来获取日志信息。
who
who命令用于报告当前登录到系统中的每个用户的信息
#该命令可以看用户名、终端类型、登录日期及远程主机
w
w命令用于显示当前系统中的每个用户及其所运行的进程信息
user
user命令只是简单的输出当前登录的用户
last
last命令用于查询成功登录到系统的用户记录
lastb
lastb命令用于查询登录失败的用户记录
实验:将日志文件全部放在日志文件服务器上
##编辑文件取消第19 20 行注释允许服务器使用TCP 514端口接收日志
#查看514端口是否开启
#重启rsyslog日志服务
#打开一台新的虚拟机作为客户端
#把所有日志采用TCP协议发送到192.168.116.8的514端口上
#重启rsyslog日志服务
#在客户端机器上尝试写日志
#服务端可以正常接受
标签:文件,log,文件系统,用户,linux,var,日志,inode From: https://www.cnblogs.com/chenjw0608/p/17822123.html