一、inode和block
文件是存储在硬盘上,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。
inode:存储元信息(文件的属性--权限、创建者、创建日期等等)
block:块 连续的八个扇区组成一个块,一个块的大小是4K,块是文件的最小存储单位。创建一个文件最小也要占4k。
操作系统读取硬盘的时候,是一次性读取多个扇区,一块一块的读取数据。
创建文件:实际空间大小的要占,第二个就是元信息。元信息和实际数据都保存在硬盘上。元信息,inode 128字节或者256字节。
一个文件必须占用一个inode(只要创建文件必须有一个inode号),至少占用一个block(空文件,也要占一块)
时间戳:
- atime:读取文件就会更新这个时间
- mtime:修改文件数据,更改文件的属性都会更新这个时间
- ctime:修改文件的权限也会更新这个时间
inode的内容
inode号:linux都是识别文件的inode号
用户通过文件名打开文件时,系统内部的过程:
- 系统--->inode--->文件名
- 用户--->文件名--->inode
元信息发生变化,inode号也会发生变化(了解)
inode号的总数:根据磁盘的大小来定,磁盘越大inode越多,磁盘越小,inode越少
inode和文件名分离,二者只是映射关心,linux系统的特有现象:
- 文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号。
- 移动文件,重命名,inode号不变。
- 一旦开始对文件操作,后续所有的认证识别都是通过inode来的,不再考虑文件名。
- 元信息发生变化,inode也会发生变化。
二、备份与恢复
centos7默认使用的文件系统就是xfs。
两个工具:xfsdump备份,xfsrestore恢复。
1、xfsdump备份
xfsdump选项
-f指定需要备份硬盘分区。
-L指定标签。
-M指定设备标签。
-s备份单个文件,-s后面不能直接跟路径。
2、xfsdump使用限制:
1、只能备份xfs的文件系统。
2、只能备份已经挂载的文件系统。
3、只有root权限才能进行操作。
4、备份之后的数据要恢复,只能使用xfsresore解析恢复。
5、如果两个设备UUID相同,不能备份(这种情况计划不会有)blkid查看uuid
实现。
xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]
//把/dev/sdb2的内容备份到/opt下的backup文件
-f:执行文件
backup必须是个文件,必须是个不存在的文件,不能是目录,如果已经存在必须是个空文件
/dev/sdb2 设备
[-L 文件标签 (备份文件的标签)]
[-M 设备标签 (要备份 的硬盘分区)]
备份的级别:全量备份和增量备份 0也是默认备份,也是全量备份 1-9是全量备份
3、 xfsrestore恢复
xfsrestore -f /opt/backup /data1
//把backup文件里的内容恢复到/data1
- -f :指定备份文件,目录
- /opt/backup :备份的文件
- /data1 :恢复到的目录
4、备份完了,恢复文件,inode是否会发生变化?
答:不会
前一个是备份的文件
后一个是恢复到指定的目录
三、 日志分析
1、系统的日志类型以及日志如何分析
linux系统本身的日志和大部分的服务程序的日志都在/var/log/目录下
/var/log/messages (核心)记录linux的内核消息,各种应用程序的公共日志消息
应用程序的公共日志:开、关、重启、网络错误、程序故障 均属于公共日志
访问日志和一些自由业务的日志不属于
/var/log/cron :记录的是定时任务的日志
/var/log/dmesg:引导过程中的日志信息
/var/log/maillog:记录进入或者发出的系统电子邮件信息
/var/log/secure:用户认证的信息
2、日志级别
数字越小优先级越高,消息越重要,none 没有优先级,不记录任何日志消息。
级别 | 消息 | 级别 | 说明 |
0 | EMERG | 最高级别,紧急 | 会导致主机系统不可用情况,系统崩溃,例如磁盘要满了 |
1 | ALERT | 紧急 | 必须要马上采取措施解决问题 |
2 | CRIT | 严重 | 比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动 |
3 | ERR | 错误 | 运行出现错误,程序启动失败,端口被占用,常见级别,出现 了也要尽快解决 |
4 | WARNING | 提醒 | 可能会影响功能,需要提醒用户的重要事件,但是不是报错,磁盘使用率85%需要注意 |
5 | NOTICE | 注意 | 也是需要用户注意的,无需处理 |
6 | INFO | 信息 | 一般信息,系统或者应用程序在工作中产生的正常消息 |
7 | DEBUG | 调试 | 程序在开发阶段,调试程序时的信息 |
3、 日志级别定义
*.info: *表示所有,表示系统当中的设备,或者程序,info:包含info以及info级别以上的日志
*代表以下情况:
- auth :用户认证产生的日志
- daemon:守护后台进程的进程
- authpriv:ssh ftp 登录验证的信息
- news:网络传输产生的消息
- syslog:系统的相关日志
- kern:系统内核日志
- user:用户进程日志
- local0-local7:自定义程序的日志。
uucp:unix-to-unix copy 两个linux之间的通信
4、日志配置文件格式
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的不记录,其他的都记
四、实操
实操一、ssh的日志单独列出来,作为一个独立的文件
1、关闭防火墙,安全机制
2、编辑vim /etc/rsyslog.conf 配置文件
新添加一行收集日志文件
生成一个自定义的日志保存到 /var/log/sshd_log下
重启
[root@localhost ssh]# systemctl restart rsyslog.service
编辑vim /etc/ssh/sshd_config配置文件
将32行 注释,新增一行收集日志文件生效
重启
[root@localhost ssh]# systemctl restart sshd
使用图形化工具访问
tail -f ssh_log动态查看日志信息,ssh的日志单独列出来,作为一个独立的文件
实操二、配置一个日志服务器,来进行日志收集
test1 192.168.10.30 日志收集服务器
test2 192.168.10.40 40上面产生的日志,都会发到30上
发送端192.168.10.40配置
1、关闭防火墙以及安全机制
2、编辑vim /etc/rsyslog.conf 配置文件
将54行系统的配置注释
新增一行修改信息以tcp协议发送到192.168.10.30 接收日志
保存退出
@@192.168.10.30
@@使用tcp协议进行数据传输
@表示使用udp协议进行传输
将第19、20行注释取消,表示使用tcp协议进行数据传输,端口号为514
3、重启 日志服务
[root@localhost ~]# systemctl restart rsyslog.service
4、查看tcp协议是否开启
[root@localhost ~]# netstat -antp | grep 514
LISTEN:监听 端口是否开启,端口是否正常传输数据
ESTABLISHED:表示已经建立而且正在传输数据
接收端192.168.10.30配置
1、关闭防火墙以及安全机制
2、编辑vim /etc/rsyslog.conf 配置文件
将第19、20行注释取消,表示使用tcp协议进行数据传输,端口号为514
3、重启 日志服务
[root@localhost ~]# systemctl restart rsyslog.service
4、查看tcp协议是否开启
[root@localhost ~]# netstat -antp | grep 514
在192.168.10.40下载httpd服务,动态查看192.168.10.30,以及192.168.10.40的日志信息
动态查看日志信息
[root@localhost /]# tail -f /var/log/messages
测试
接受端主机192.168.10.30信息
发送端主机192.168.10.40日志信息
结果:下载http的的日志信息发到所设置的192.168.10.30主机上,本机的192.168.10.40日志信息只记录登录和登出 。