在Linux系统中,文件名和文件数据是分开存储的
文件数据包含 元信息(即不包含文件名的文件属性) 和 实际数据
文件元信息存储在 inode(索引节点)里,文件实际数据存储在 block(块)里;文件名存储在目录块里
查看文件的元信息 stat 文件名
查看文件的inode号 stat 文件名 ls -i 文件名
查看每个分区的inode数量 df -i
Linux系统不使用 文件名 识别文件,而使用 inode号 来识别文件,文件名只是 inode号 便于识别的别称,文件名和inode号是一一对应的。
用户通过文件名访问文件的过程:
先根据文件名找到对应的inode号;再通过inode号获取 inode信息;再根据inode信息判断用户是否具有访问权限;如果有则指向实际数据的块并读取数据,否则拒绝访问。
直接查看、修改文件内容或者改变文件名都不会影响 inode号,使用 vi 编辑器修改文件保存退出后会影响 inode号
针对无法正常删除文件名含有特殊符号的文件时,可根据 inode号 来删除文件 find 目录 -inum <inode号> -delete
Linux日志
内核及系统日志
/var/log/messages
/var/log/cron
/var/log/dmesg
/var/log/maillog
用户登录事件日志
/var/log/secure
/var/log/lastlog
/var/log/wtmp
/var/run/btmp
程序日志
由应用程序配置文件自行定义的
日志级别:debug, info, notice, warn, error, crit, alert, emerg none
7 6 5 4 3 2 1 0 数字等级越小,日志级别越高,日志事件越重要
Linux系统日志管理服务 rsyslog
配置文件 /etc/rsyslog.conf
集中式收集管理日志方案 rsyslog shell/python脚本 ELK(elasticsearch+logstash+kibana) Loki+promtail+grafana
Linux系统日志管理 journalctl -r
-u 服务名
-k
-b -0/-1
-f
_PID=<进程PID>
_UID=<账户UID>