赞
踩
文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。
一般连续八个扇区组成一个"块"(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。
文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块”中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。因此,一个文件必须占用一个 inode,并且至少占用一个 block。
inode不包含文件名。文件名是存放在目录当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
查看文件名对应的 inode 号码有两种方式:
ls -i 文件名
stat 文件名
atime(accesstime):
当使用这个文件的时候就会更新这个时间。
mtime(modification time):
当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。
ctime(status time):
当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,
只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。
inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。
一个是数据区,存放文件数据;
另一个是 inode 区,存放 inode 所包含的信息。
每个 inode 的大小,一般是 128 字节或 256 字节。
通常情况下不需要关注单个 inode 的大小,而是需要重点关注 inode 总数。
inode 的总数在格式化时就给定了,
执行 “df -i” 命令即可查看每个硬盘分区对应的的 inode 总数和已经使用的inode 数量。
由于 inode 号码与文件名分离,导致Linux 系统具备以下几种特有的现象:
1.文件名包含特殊字符,可能无法正常删除。这时直接删除 inode,能够起到删除文件的作用;
2.移动文件或重命名文件,只是改变文件名,不影响 inode 号码;
3.打开一个文件以后,系统就以 inode 号码来识别这个文件,不再考虑文件名。
4.使用 vi 编辑器修改文件数据保存后,会生成一个新的 inode 号码。
find ./ -inum 52305140 -exec rm -i {} \; ---查找inode删除
find /opt -inum 34376268 -exec rm -rf {} \;
find ./ -inum 50464299 -delete ---同上
inode节点耗尽故障处理
#使用fdisk创建分区/dev/sdb1,分区大小4M即可 创建一个ext4的
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkdir /test
mount /dev/sdb1 /mnt
df -i
#模拟inode节点耗尽故障
for ((i=1; i<=7680; i++));do touch /test/file$i;done touch {1..7680}.txt
df -i
df -hT
#删除文件恢复
rm -rf /test/*
df -i
df -hT
ext4类型inode号满了之后无法再添加文件,但xfs类型有容错机制,在inode号满了情况下还可以再添加大约300个inode号文件。
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命令查看)
中间回车键是确认你是否需要全部备份
内核及系统日志由系统服务 rsyslog 统一管理,主配置文件为/etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下。
常见的一些日志文件:
#内核及公共消息日志:
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,
包括启动、IO错误、网络错误、程序故障等。
对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
#计划任务日志:
/var/log/cron:记录crond计划任务产生的事件信息。
#系统引导日志:
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
#邮件系统日志:
/var/log/maillog:记录进入或发出系统的电子邮件活动。
#用户登录日志:
/var/log/secure:记录用户认证相关的安全事件信息。
/var/log/lastlog:记录每个用户最近的登录事件。二进制格式
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。二进制格式
/var/run/btmp:记录失败的、错误的登录尝试及验证事件。二进制格式
#MODULES //相关模块配置
# Provides UDP syslog reception
#$ModLoad imudp //使用UDP协议传输日志数据
#$UDPServerRun 514 //端口为514端口
# Provides TCP syslog reception
#$ModLoad imtcp //使用TDP协议传输日志数据
#$InputTCPServerRun 514 //端口为514端口
#### GLOBAL DIRECTIVES #### //全局配置不常用省略
#### RULES #### //日志记录相关的规则配置
*.info;mail.none;authpriv.none;cron.none /var/log/messages
//*表示所有 *.info表示所有级别,分号隔开none表示没有级别,即不记录
//本行中表示不记录mail、authpriv、cron其他所有记录到/var/log/messages文件中
authpriv.* /var/log/secure
//authpriv:所有等级日志记录到/var/log/secure文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
mail.* -/var/log/maillog
//mail所有等级日志记录到-/var/log/maillog文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
cron.* /var/log/cron
//cron所有等级日志记录到/var/log/cron文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
local7.* /var/log/boot.log
//local7表示自定义服务,范围为0-7都可以使用,在支持的服务配置文件中也要写对应的local等级
// /var/log/boot.log表示存到此目录下的文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
设备字段说明:
auth用户认证时产生的日志
authprivssh、ftp等登录信息的验证信息
daemon一些守护进程产生的日志
ftpFTP产生的日志
lpr打印相关活动
markrsyslog服务内部的信息,时间标识
news网络新闻传输协议(nntp)产生的消息。
syslog系统日志
uucpUnix-to-Unix Copy 两个unix之间的相关通信
console针对系统控制台的消息。
cron系统执行定时任务产生的日志。
kern系统内核日志
local0~local7自定义程序使用
mail邮件日志
user用户进程
Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要):
0EMERG(紧急):会导致主机系统不可用的情况。如系统崩溃
1ALERT(警告):必须马上采取措施解决的问题。如数据库被破坏
2CRIT(严重):比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能
3ERR(错误):运行出现错误。不是非常紧急,尽快修复的
4WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等
5NOTICE(注意):不会影响正常功能,但是需要注意的事件。无需处理
6INFO(信息):一般信息。正常的系统信息
7DEBUG(调试):程序或系统调试信息等。包含详细开发的信息,调试程序时使用
none:没有优先级,不记录任何日志消息。
分析工具
users、 who、w 、last、lastb
last命令用于查询成功登录到系统的用户记录
lastb命令用于查询登录失败的用户记录
users #显示当前登录系统的所有用户的用户列表。
[root@localhost opt]# users
root root
w #显示目前登入系统的用户信息
last #列出截止目前登录过系统的用户信息
lastb #查询登录失败的用户记录
公共日志/var/log/messages 文件的记录格式
时间标签:消息发出的日期和时间。
主机名:生成消息的计算机的名称。
子系统名称:发出消息的应用程序的名称。
消息:消息的具体内容。
-------------实验一:将ssh服务日志单独存放------------
添加local6
#SyslogFacility AUTHPRIV #注释掉
SyslogFacility LOCAL6 #添加这一行,可以复制粘贴,必须要大写
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。