文件系统
概述
文件是存储在硬盘上的。硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。
inode号:又叫索引号,保存的是元信息(主要有文件的属性 :包括权限,创建者,创建日期等)
block:块,连续的八个扇区组成一个块,一个块的大小是4k。创建一个文件,最小也要占4k。块是文件的最小存储单位。操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取数据。
创建文件:第一个是实际占用的空间大小,第二个就是元信息。元信息和实际数据都保存在硬盘上。元信息的inode号一般都是 128字节或者256字节
一个文件必须占用一个inode (只要创建文件必须有一个inode号) 至少占用一个block(空文件,也要占一个块)
时间戳:
atime 读取文件就会更新这个时间
mtime 修改文件数据,更改文件的属性,都会更新这个时间
ctime 修改文件的权限也会更新这个时间
inode号
Linux都是识别文件的inode号 元信息发生了变化,inode号也会随之发生变化
inode号的总数是根据磁盘的大小决定的,磁盘越大inode号越多,磁盘越小inode号越少
总结:由于inode和文件名分离,二者只是映射关系,Linux系统的特有现象:
1.文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号
2.移动文件,重命名文件 这些inode号是不变的
3.一旦开始对文件操作,后续所有的认证和识别都是通过inode号来的,不再考虑文件名
4.元信息发生变化,inode也会发生变化
如果inode满了, ext4文件系统会发生怎样的变化?
ext4 文件系统中 inode号满了之后就不能继续写入了
如果inode满了, xfs文件系统会发生怎样的变化?
如果inode号占满了xfs文件系统可以继续写入,还能写入128个(每个主机不一样)
xfs与ext4不同之处:xfs文件系统 inode号占满了 还能继续写入 但是ext4文件系统 inode号占满了之后就不能继续写入了。
备份和恢复
xfs文件系统,如何能实现备份和恢复?
centos7默认使用的文件系统就是xfs
xfsdump 备份
xfsdump 命令的选项:
-f :指定需要备份的硬盘分区
-L:指定标签
-M:指定设备标签
-s:备份单个文件 -s后面不能直接跟路径
xfsdump使用限制:
1.只能备份xfs的文件系统
2.只能备份已经挂载的文件系统
3.只有root权限才能进行操作
4.备份之后的数据要恢复,只能使用xfsrestore解析恢复
5.如果两个设备的uuid相同,不能备份(这种情况几乎不会有)查看uuid命令 blkid
xfs如何实现备份和恢复:
1.先安装xfsdump
2.创建文件信息 并 查看inode号
查看文件inode号命令 ls -i
3.备份
xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]
-f 执行文件
/opt/backup 备份的目的地址 必须是个不存在的文件,它还不能是个目录,如果已经存在,必须是个空文件
/dev/sdb2 需要备份的硬盘分区
-L 指定备份的目的地的文件标签
-M 指定要备份的硬盘分区
备份的级别:全量备份和增量备份
直接回车默认全量备份
4.xfsrestore 恢复
xfsrestore -f /opt/backup /data1/ 把backup文件恢复到 data1
总结:在恢复的后inode号发生变化
ext4备份和恢复:
ext4只能在centos6上用
日志分析
日志的类型
Linux系统本身的日志和大部分的服务器程序的日志都在 /var/log/下
/var/log/messages 记录了Linux的内核信息,各种应用程序的公共日志信息(开、关、重启、网络错误、程序故障都属于公共日志) 但是访问日志和自由业务日志不包含其中。
tail -f /var/log/messages 查看日志命令
cron:记录的是定时任务的日志
dmesg:引导过程中的日志信息
maillog:记录进入或者发出的系统电子邮件信息
secure:用户认证的相关信息
Linux的日志级别
日志级别:数字越小,优先级越高,消息越重要
0 EMERG 紧急 :会导致主机系统不可以的情况,即系统崩溃 比如磁盘满了
1 ALERT 警告 :必须马上采取措施解决的问题。比如 密码到期,数据库崩溃
2 CRIT 严重:比较严重的情况,比如磁盘读写出现了故障,有些程序的功能无法启动
3 ERR (error)错误 :运行出现错误,比如程序启动失败,端口被占用等等
4 WARNING 提醒 可能会影响功能,需要提醒用户的重要时间,但不是报错,比如磁盘使用率达到了85%
5 NOTICE 注意 ,也是需要用户注意的,但无需处理
6 info 信息 ,一般信息,系统或者应用程序在工作中产生的正常信息
7 debug 调试 ,程序在开发阶段,调试程序时的信息
8 none 没有优先级,不记录任何日志信息
日志级别的定义:
*.info :*表示所有 . 表示系统当中的设备或者程序 info:包含info以及info级别以上的日志
auth 用户认证产生的信息
daemon 守护后台进程的信息
authpriv:SSh,FTP 登录验证的信息
news 网络传输产生的信息
syslog 系统的相关日志
kern 系统的内核日志
user 用户进程日志
local0-local7 自定义程序的日志
uucp:unix-to-unix copy 两个linux之间的通信
info格式
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 记录邮件和网络传输的信息,包括info和info以上的信息
实验
把ssh的日志单独的列出来,作为一个独立的日志文件
1.关闭防火墙
2.打开系统管理日志
3.ssh配置
4.重启
5.查看日志
配置日志服务器,来进行日志收集,把第一台作为日志收集服务器,把第二台产生的日志都会发送在第一台上,自己不再记录
1.