一、inode和block
1、创建文件
实际空间大小要占,第二个是元信息。元信息和实际数据都保存在硬盘上。
2、block
块。连续的八个扇区组成一个块,一个块的大小是4k,创建一个文件,最小也要占4k。操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取。
3、inode
存储元信息(文件属性、权限、创建者、创建日期、时间戳等),大小128或者256字节,元信息发生变化,inode号也会发生变化
—时间戳
atime:只要读取文件就会更新时间
mtime:修改文件数据,更改文件属性,都会更新时间
ctime:修改文件权限也会更新这个时间
inode号:linux都是识别文件的inode号
4、inode号的总数怎么定?
根据磁盘大小,磁盘越大inode号越多,越小inode号越少。
inode号和文件分离,二者只是映射关系
5、linux系统的特有现象
5.1 文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号
5.2 移动文件,重命名,inode号不变
5.3 一旦开始对文件操作,后续所有认证和识别都是通过inode号,不再考虑文件名
5.4 元信息发生变化,inode号也会发生变化
ext4给5M、xfs给20M,模拟inode号耗尽,ext4和xfs会发生什么变化,二者有什么区别?
答:inode耗尽后,ext4不可以创建文件,xfs仍然可以创建文件,,可以对比一下刚挂载inode数量,和inode号耗尽创建数量,大概可以继续创建100个左右
xfs系统如何实现备份和恢复?
(xfsdump 备份软件 xfsstore 恢复软件)
1、xfsdump:备份命令
-f 指定需要的硬盘分区 硬件设备挂载点
-L 指定标签
-M 指定设备标签
-s 备份
2、xfsdump使用限制
2.1 只能备份xfs文件系统
2.2 只能备份已经挂载的文件系统
2.3 只有root权限才能进行备份
2.4 备份数据恢复,只能使用xfsstore
2.5 不同设备的uuid相同,不能备份(这个情况几乎没有)
备份命令:xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2] 命令解释:把/dev/sdb2的内容备份到/opt/backup目录下,[-L backup 指文件标签 -M sdb2 指设备标签]
!!!注意:/opt/backup 必须是个文件,必须是个不存在的文件。不能是目录,如果已经存在,必须是个空文件
3、备份级别
全量备份和增量备份
0 全量备份,默认
1~9 增量备份,一般不用
恢复命令:xfsrestore -f /opt/backup /data1/ 命令解释:把/opt/backup下删除的内容,恢复到/data1/目录下
问:备份完恢复文件,inode号是否会变?
一般会变,删除文件后,inode被释放,恢复文件,会分配新的inode号,不排除分配该文件原有inode号,但概率很小。
4、EXT类型备份和恢复
ext4在centos6下使用,恢复成功概率低。
二、日志分析
linux系统本身的日志和大部分的服务器程序的日志都在/var/log/
1、主要日志文件介绍
1.1 /var/log/messages/ 记录了linux的内核消息,各种应用程序的公共日志消息。应用程序的公共日志:开、关、重启、网络错误、程序故障等,访问日志和一些自由业务日志不包含其中
1.2 /var/log/cron/ 记录定时任务日志
1.3 /var/log/dmesg/ 记录系统引导日志
1.4 /var/log/maillog/ 记录或者发出的系统电子文件
1.5 /var/log/secure/ 用户认证的相关信息
2、linux的日志级别
数字越小,优先级越高,消息越重要
级号 | 信息 | 级别 | 说明 |
---|---|---|---|
0 | EMERG | 紧急 | 会导致主机系统不可用情况,系统崩溃。例如:磁盘满了(emerg) |
1 | ALERT | 警告 | 必须马上采取措施解决的问题。例如:密码到期、数据库崩溃 |
2 | CRIT | 严重 | 比较严重的情况。例如:磁盘读写出了故障 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息等 |
none 没有优先级 不记录任何日志消息
3、重要日志定义
日志信息 | 说明 |
---|---|
*.info | * 表示所有,表示系统当中的设备,或者程序。info,包含info已经info级别以上的日志 |
auth | 用户认证产生的日志 |
daemon | 守护后台进程日志 |
authpriv | SSh、FTP登录验证信息 |
news | 网络传输产生的消息 |
syslog | 系统相关日志 |
kern | 系统的内核日志 |
user | 用户进程日志 |
local0-local7 | 自定义程序日志 |
uucp | unix-to-unix copy 两个系统之间的通信 |
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的不记录,其他的都记录
mail.info;news.info:记录邮件和网络传输消息info和info以上的(也可以写成 mail,news.info)
5、日志信息格式及含义
May 31 13:46:02 test1 systemd: Starting The Apache HTTP Server
May 31 13:46:02 表示当前日志发生的时间
test1 表示发生的主机名
systemd: 什么系统产生了这个日志
Starting The Apache HTTP Server 日志的具体内容
三、实验
实验1
要求:ssh的日志单独列出来,作为一个独立的日志文件
1、打开两台虚拟机test1和test2,关闭防火墙和防御机制。
2、修改系统日志配置,增加新ssh日志存储路径 vim /etc/rsyslog.conf
3、重启系统日志服务 systemctl restart rsyslog.service
4、修改sshd配置 vim /etc/ssh/sshd_config
5、重启sshd服务 systemctl restart sshd
6、到/var/log/目录下查看,出现ssh.log,即为修改配置成功
7、动态查看日志
在test1上 tail - f /var/log/shh.log
在test2上远程访问test1 ssh root@192.168.100.11
test1上会出现来找test2的ip地址
访问 tail -f /var/log/secure/
只记录会话,简单信息,详细信息记录在ssh里面
实验2
要求:配置日志服务器来进行日志收集
test1,192.168.100.11作为日志收集服务器
test2,192.168.100.12产生日志发到test1,自己不再收集
1、打开两台虚拟机test1和test2,关闭防火墙和防御机制。
2、修改系统日志配置,增加新ssh日志存储路径 vim /etc/rsyslog.conf
4、重启日志 systemctl restart rsyslog.service
5、查看tcp端口 netstat -antp | grep 514
@@表示使用tcp协议进行数据传输
@表示使用udp协议进行传输
LISTEN:监听。端口是否开启,端口正常传输数据
ESTABLISHED:表示端口之间已经建立连接而且正在传输数据
6、vim /etc/log/messages
7、重启日志 systemctl restart rsyslog.service
8、此时在打开一个test2,tail -f /etc/log/messages,发现日志信息会在test1上的/var/log/messages接收