文件系统和日志分析
文件是存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节
inode:元信息(文件的属性 权限,创建者,创建日期等等)
block:块,连续的八个扇区组成一个块,一个块大小4k,创建一个文件,(空的)最小也要占4K。块是文件的最小存储单位
操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取数据。
创建文件:第一个 实际空间大小的要占,第二个就是元信息。(实际数据和元信息都保存在硬盘上)。元信息,inode 占 128字节或者256字节
一个文件必须占用一个inode (只要创建文件必须有 一个inode号 ),至少占一个block(即使是空文件,也要占一个块)
时间戳:
atime 读取文件就会更新这个时间
mtime 修改文件数据,更改文件的属性,都会更新这个时间 一般以此为标准
ctime 修改文件的权限也会更新这个时间
inode号:linux都是识别文件的inode号
元信息发生了变化,inode号也会随之发生变化。
inode号如果发生改变,原来的号还会保留分配给其他文件
inode号的总数?
磁盘大小。磁盘越大 inode号越多。越小,inode号越少。
inode号和文件名分离,二者只是映射关系, linux系统的特有现象:
1.文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号
2.移动文件,重命名,inode是不变的
3.一旦开始对文件操作,后续所有的认证和识别都是通过inode来的,不再考虑文件名
4.元信息发生变化,inode也会发生变化。
如果inode号满了,ext4和xfs之间有什么区别
总结:ext4当inode用完时,需要手动管理以释放inode
xfs具有更好的可扩展性和动态inode分配能力,可以在inode满时通过扩展文件系统来增加inode数量
xfs文件系统,如何能够实现备份和恢复?
ext4恢复不一定会成功,差不多五次成功一次
centos7默认使用的文件系统就是xfs,
xfsdump 备份
xfsrestore 恢复
xfsdump命令的选项:
-f 指定需要备份的文件目录或硬盘分区(硬件设备的挂载点或硬盘分区) 挂载点
-L 指定标签
-M指定设备标签
-s 备份单个文件,-s 后面不能直接跟路径
xfsdump使用限制:
1、只能备份xfs的文件系统
2、只能备份已经挂载的文件系统。
3、只有root权限才能进行操作
4、备份之后的数据要恢复,只能使用xfsrestore解析恢复 。
5、如果两个设备的uuid相同,不能备份(这种情况几乎不会有)
blikd
备份完之后,恢复文件, inode号是否会发生变化?
xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]
-f 执行文件
/opt/backup 必须是个文件,必须是个不存在的文件。不能是目录。如果已经存在,必须是个空文件。
/dev/sdb2 设备
[-L 文件标签(备份文件的标签) ]
[-M 设备标签(要备份的硬盘分区)]
备份的级别:全量备份和增量备份
0也是默认的 也就是全备份
1-9是增量备份(一般不用)
xfsrestore -f /opt/backup /data1/
前一个是备份的文件
后一个是恢复到指定的目录。
恢复后inode号会改变
日志分析
系统的日志类型以及日志如何分析
linux系统本身的日志和大部分的服务器程序的日志都在/var/log/
/var/log/messages 记录了linux的内核消息,各种应用程序的公共日志消息。
应用程序公共日志:开 关 重启 网络错误,程序故障这些都属于公共日志。
访问日志和一些自由业务日志不包含其中
cron:记录的是定时任务的日志
dmesg:引导过程中的日志信息
maillog:记录进入或者发出的系统电子邮件信息
secure:用户认证的相关信息
linux的日志级别:数字越小,优先级越高,消息越重要
0 EMERG 紧急 会导致主机系统不可用的情况,系统崩溃。例如磁盘要满了
(EMERG)
1 ALERT 警告 必须要马上采取措施解决的问题。密码到期,数据库崩溃
2 CRIT 严重 比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动
3 ERR error 错误,运行出现错误,程序启动失败,端口被占用等等,遇到的最多的情况,出现了也是要尽快解决
4 WARNING 提醒 可能会影响功能,需要提醒用户的重要事件,但是不是报错。可以忽略,但磁盘使用率到了85%需要去处理
5 NOTICE 注意,也是需要用户注意的,无需处理。
6 INFO 信息 一般信息,系统或者应用程序在工作中产生的正常消息。
7 debug 调试,程序在开发阶段,调式程序时的信息。
none 没有优先级,不记录任何日志消息
日志级别怎么定义:
*.info *表示所有,表示系统当中的设备,或者程序。info: 包含info以及info级别以上的日志。
auth 用户认证产生的日志
daemon 守护后台进程的进程
authpriv: SSh,FTP登录验证的信息
news:网络传输产生的消息
syslog:系统的相关日志
kern:系统的内核日志
user:用户进程日志
local0-local7:自定义程序的日志
格式:记录的内容.日志级别
uucp: unix-to-unix copy两个linux之间的通信
示例
mail.info /var/log/mail.log :记录邮件的信息,包含info和info以上的,记录到/var/log/mail.log
mail.=info /var/log/mail.log 只记录日志级别是info的
mail.info /var/log/mail.log 除了info的不记录,其他的都记
mail.info;news.info 每个可以用 ; 隔开 或者 mail,news.info
第一个实验:
系统日志管理文件vim /etc/rsyslog.conf
把ssh的日志单独的列出来,作为一个独立的日志文件
第二个实验: .
配置日志服务器,来进行日志收集。
test1 192.168.235.10 日志收集服务器
test2 192.168.235.20 20上面产生的日志,都会发到10上,20自 己不再记录旧志。
@@192.168.233.10.
@@表示使用tcp协议进行数据传输
@表示使用UDP协议进行传输
LISTEN:监听,端口是否开启。端口是否正常传输数据。如果开启和传输数据后进入ESTABLISHED
ESTABLISHED:表示端口之间已经建立连接而且正在传输数据