linux cpu占用率如何看
251
2022-11-05
inode及日志分析
inode及日志分析
一、深入理解Linux文件系统
1、inode与block
inode
存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode
在 liunx 中创建文件系统时,同时将会创建大量的 inode。通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。
block
一般连续八个扇区组成一个"块" (block) ,是文件存取的最小单位,一个块是4K大小。
2、inode
查询inode号
格式: stat 目标文件名称 格式: ls -i
inode包含文件的元信息
不包含文件名 文件的字节数 文件拥有者的UID 文件的GID 文件的读、写、执行权限 文件的时间戳
Linux系统三个主要的时间属性
ctime(change time) | 最后一次改变文件或目录(属性)的时间 |
---|---|
atime(access time) | 最后一次访问文件或目录的时间 |
mtime(modify time) | 最后一次修改文件或目录(内容)的时间 |
3、inode内容
文件是存储在硬盘上的,硬盘的最小存储单位叫做"扇区”(sector) ,每个扇区存储512字节操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中, 因此,一个文件必须占用一个inode, 并且至少占用一个block.
inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。
对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系, 每个inode号码对应一个文件名。
所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息, 看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
inode大小
inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode 区,存放inode 所包含的信息。每个inode 的大小,一般是128字节或256字节。
通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行"df-i”命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。
由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象
文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用 移动文件或重名文件,只是改变文件名,不影响inode号码 打开一个文件以后,系统就以inode.号码来识别这个文件,不再考虑文件名 文件数据被修改保存后,会生成一个新的inode号码
find ./ -inum 52305140 -exec rm -i {} \; find ./ -inum 50464299 -delete
打开文件,在系统上的过程(分为三步)
系统找到这个文件对应的inode号码 通过inode号码,获取inode信息(属性及权限) 根据inode信息,找到文件数据所在block,读出数据
4、inode号节点故障实验
for (( i=1; i<=5126 i++)) >do >touch /rng/xm$i >done 查询 df -ih du -h --max-depth=1 /rng (一层一层的往下排查) ls | wc -l
二、恢复误删除文件
1.恢复EXT格式文件
编译安装extundelete软件包
是一个开源的Linux 数据恢复工具,支持ext3、 ext4文件系统。( ext4只能在centos6版本恢复)
安装依赖包 yum -y install e2fsprogs-deve1 e2fsprogs-libs 编译安装extundelete cd ~ wget //nchc,d1.sourceforge. net /project extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 tar jxvf extundelete-0.2.4.tar.bz2 cd extundelete-0.2.4/ ./configure --prefix=/usr/local/extundelete && make && make install 建立软连接 PACH 环境下系统才能识别 放在外部命令的文件 ln -s /usr/local/extundelete/bin/* /usr/bin/ 模拟删除并执行恢复操作 cd /rng echo a>a echo a>b echo a>c echo a>d cat a b c d 查看文件系统/dev/sdc1下存在哪些文件,i节点是从2开始的,2代表该文件系统最开始的目录 extundelete /dev/sdb1 --inode 2 rm-rf * cd ~ umount /rng extundelete /dev/sdb1 --restore-all 恢 复/dev/sdb1文件系统下的所有内容 在当前目录下会出现一个RECOVERED_ FILES/日录,里面保存了C L经恢复的文件 ls RECOVERED FILES/
安装依赖包
2.xfs类型文件备份和恢复
CentOs 7系统默认采用xfs类型的文件,xfs类型的文件可使用xfsdump与xfsrestore工具进行备份恢复。xfsdump的备份级别有两种: 0表示完全备份; 1-9 表示增量备份。xfsdump的备份级别默认为0。
xfsdump的命令格式为
xfsdump -f 备份存放位置 要备份的路径或设备文件 xfsdump命令常用的选项: -f:指定备份文件目录 -L:指定标签session label -M:指定设备标签media label -s:备份单个文件,-s后面不能直接跟路径 xfsdump使用限制: 1.只能备份已挂载的文件系统 2.必须使用root的权限才能操作 3.只能备份XFS文件系统 4.备份后的数据只能让xfsrestore解析 5.不能备份两个具有相同UUID的文件系统(可用blkid命令查看)
#使用xfsdump 命令备份整个分区 rpm -q xfsdump xfsdump -f /mnt/dump_ sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1] #模拟数据丢失并使用xfsrestore 命令恢复文件 cd /rng rm -rf * xfsrestore -f /mnt/dump_sdb1 /rng
三、分析日志文件
1、日志文件
日志的功能用于记录系统、程序运行中发生的各种事件通过阅读日志,有助于诊断和解决系统故障
日志文件的分类
内核及系统日志由系统服务rsyslog统一进行管理, 日志格式基本相似主配置文件/etc/rsyslog.conf
用户日志记录系统用户登录及退出系统的相关信息
程序日志由各种应用程序独立管理的日志文件,记录格式不统一
2、日志文件的分类
内核及系统日志由系统服务rsyslog 统一管理,主配置文件为/etc/ rsyslog.confLinux操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。
常见的一些日志文件:
内核及公共消息日志:/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、输入错误、网络错误、程序故障等。
对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
计划任务日志:/var/log/cron:记录crond计划任 务产生的事件信息。
系统引导日志:/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
邮件系统日志:/var/log/maillog:记录进入或发出系统的电子邮件活动。
用户登录日志:/var/log/secure:记录用户认证相关的安全事件信息。/var/log/lastlog:记录每个用户最近的登录事件。二进制格式/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。二进制格式/var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式
3、Linux日志优先级
vim /etc/rsyslog.conf 查看rsyslog.conf配置文件 *.info; mail.none; authpriv.none; cron.none /var/log/messages *.info 表示info等级及以上的所有等级的信息都写到对应的日志文件里 mail.none 表示某事件的信息不写到日志文件里(这里比如是邮件)
4、分析工具
users、 who、 w、 last、 lastb last 命令用于查询成功登录到系统的用户记录 lastb 命令用于查询登录失败的用户记录 文本查看 grep过滤检索 Webmin管理套件中查看 awk、sed等文本过滤格式化编辑工具 Webalizer、Awstats等专用日志分析工具 由相应的应用程序独立进行管理 Web服务: /var/log/httpd/ access_log 记录客户访问事件 error_log 记录错误事件 代理服务:/var/log/squid/ access.log、cache.log
5、日志管理策略
日志管理策略
及时作好备份和归档 延长日志保存期限 控制日志访问权限 日志中可能会包含各类敏感信息,如账户、口令等
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~