在Linux系统中,文件名和文件数据是分开存储的
文件数据
包含 元信息(即不包含文件名的文件属性) 和 实际数据
文件元信息存储在 inode(索引节点)里,文件实际数据存储在 block(块)里;文件名存储在目
录块里
查看文件的元信息
stat 文件名
查看文件的inode号
stat 文件名 ls -i 文件名
查看每个分区的inode数量
df -i
Linux系统不使用 文件名 识别文件,而使用 inode号 来识别文件,文件名只是 inode号 便于识别的
别称,文件名和inode号是一一对应的。
用户通过文件名访问文件的过程:
1、先根据文件名找到对应的inode号;
2、再通过inode号获取inode信息;
3、再根据inode信息判断用户是否具有访问权限;
4、如果有则指向实际数据的块并读取数据,否则拒绝访问。
直接查看、修改文件内容或者改变文件名都不会影响 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> 查看指定用户