linux 文件系统
一?indoe 表结构
每个inode都有一个号码,操作系统用inode号码来识别不同的文件,Linux系统内部不使用文件名
而使用inode号码来识别文件
包含文件元信息,不包含文件名
- 文件的字节数
- 文件拥有者的userID
- 文件的groupID
- 文件的读写、执行权限
- 文件的时间戳
Linux有3个时间属性:
? ? ? ?最近访问atime:最后一次查看文件
? ? ? ?最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
? ? ? ?最近改动ctime:最近更改文件元信息的时间,比如改变权限等
?若访问一下,最近更改时间就会变化
修改文件属性改动时间就会变化
?软/硬连接
最大区别:硬 inode号与原文件相同;软 不同
inode的号码
表面上,用户通过文件名来打开文件,实际上,在系统内部这个过程分成三步
1 系统找到这个文件对应的inode号码
2 通过inode 号码,获得inode信息
3 根据inode信息,找到文件数据所在的block,读出数据
ls -i? ?
可以直接查看文件对应的inode
stat
通过查看文件inode信息而看到inode号码
inode的大小
df? -i??
查看每个硬盘分区的inode总数和已经使用的数量
二? ?文件恢复extundelete
? ?使用 extundelete 工具如何恢复误删除的文件
①
②安装数据包?
??
③
④
⑤
?⑥
?⑦
⑧
?⑨
模拟删除并恢复
?
?
三? xfs类型备份和恢复
四 日志
内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下
日志文件位置 | 日志文件说明 |
---|---|
/var/log/messages内核和公共日志 | 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。 |
/var/log/cron 计划任务日志 | 记录与系统定时任务相关的曰志 |
/var/log/dmesg 系统引导日志 | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/maillog 邮件日志 | 记录邮件信息的曰志 |
用户日志 | |
/var/log/lastlog | 记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看 |
/var/log/secure | 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
/var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看 |
/var/tun/ulmp | 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看 |
?
1 日志文件的格式包含以下 4 列:
-
事件产生的时间。
-
产生事件的服务器的主机名。
-
产生事件的服务名或程序名。
-
事件的具体信息。
[root@localhost ~]# vim /var/log/secure? ?#可以对比格式
?
2 内核和公共日志
日志的配置文件 位置在 /etc/rsyslog.conf
?[root@localhost ~]# vim /etc/rsyslog.conf
?3 信息的优先级别重要程度
在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)。
0 EMERG(紧急):会导致主机系统不可用的情况。
1 ALERT (警告):必须马上采取措施解决的问题。
2 CRIT? ? (严重):比较严重的情况。
3 ERR? ? (错误):运行出现错误。
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。
6 INFO? (信息):一般信息。
7 DEBUG(调试):程序或系统调试信息等
4 内核和公共消息日志存储位置
内核及大多数系统消息被记录到公共日志文件/var/log/messages 中,而其他一些程序
消息被记录到各自独立的日志文件中,此外日志消息还能够记录到特定的存储设备中,或者
直接发送给指定用户。
其中每一行表示一条日志消息,每一条消息均包括以下四个字段。
-
时间标签:消息发出的日期和时间。
-
主机名:生成消息的计算机的名称。
-
子系统名称:发出消息的应用程序的名称。
-
消息:消息的具体内容。
5 用户日志
在 wtmp、btmp、
lastlog 等日志文件中,保存了系统用户登录、退出等相关的事件消息。
但是这些文件都是二进制的数据文件,不能直接使用 tail、less 等文本查看工具进行浏览,
需要使用 who、w、users、last 和 lastb 等用户查询命令来获取日志信息
6 查询当前登录的用户情况
w
who
user
7 查询用户登录的历史记录
last
8? 查询登录失败的用户记录
lastb
五?系统日志介绍
日志记录的内容包括:
-
历史事件:时间,地点,人物,事件
-
日志级别:事件的关键性程度,Loglevel
sysklogd 系统日志服务
CentOS 5 之前版本采用的日志管理系统服务
-
syslogd: system application 记录应用日志
-
klogd: linux kernel 记录内核日志
rsyslog 系统日志服务
rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。
当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的”。
rsyslog 特性
-
多线程
-
UDP, TCP, SSL, TLS, RELP
-
MySQL, PGSQL, Oracle实现日志存储
-
强大的过滤器,可实现过滤记录日志信息中任意部分
-
自定义输出格式 可以日志
-
适用于企业级
ELK:由Elasticsearch, Logstash, Kibana三个软件组成
-
非关系型分布式数据库基于apache软件基金会jakarta项目组的项目lucene
-
Elasticsearch是个开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能
-
Logstash对日志进行收集、分析,过滤,并将其存储供以后使用
-
Kibana 可以提供的日志分析友好的 Web 界面
系统日志术语
日志等级
等级名称 | 说 明 |
---|---|
debug (LOG_DEBUG) | 一般的调试信息说明 |
info (LOG_INFO) | 基本的通知信息 |
notice (LOG_NOTICE) | 普通信息,但是有一定的重要性 |
warning(LOG_WARNING) | 警吿信息,但是还不会影响到服务或系统的运行 |
error(LOG_ERR) | 错误信息, 一般达到err等级的信息已经可以影响到服务成系统的运行了 |
crit (LOG_CRIT) | 临界状况信思,比err等级还要严? |
alert (LOG_ALERT) | 状态信息,比crit等级还要严重,必须立即采取行动 |
emerg (LOG_EMERG) | 疼痛等级信息,系统已经无法使用了 |
* | 代表所有日志等级。比如,“authpriv.*”代表amhpriv认证信息服务产生的日志,所有的日志等级都记录 |
服务名称
服务名称 | 说 明 |
---|---|
auth(LOG AUTH) | 安全和认证相关消息 (不推荐使用authpriv替代) |
authpriv(LOG_AUTHPRIV) | 安全和认证相关消息(私有的) |
cron (LOG_CRON) | 系统定时任务cront和at产生的日志 |
daemon (LOG_DAEMON) | 与各个守护进程相关的曰志 |
ftp (LOG_FTP) | ftp守护进程产生的曰志 |
kern(LOG_KERN) | 内核产生的曰志(不是用户进程产生的) |
Iocal0-local7 (LOG_LOCAL0-7) | 为本地使用预留的服务 |
lpr (LOG_LPR) | 打印产生的日志 |
mail (LOG_MAIL) | 邮件收发信息 |
news (LOG_NEWS) | 与新闻服务器相关的日志 |
syslog (LOG_SYSLOG) | 存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了 syslogd服务的,所以这里并没有修改服务名称) |
user (LOG_USER) | 用户等级类别的日志信息 |
uucp (LOG_UUCP> | uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来 也常用在新闻组服务中 |
实验 将ssh服务日志单独存在
1? 进入rsyslog配置文件,添加自己的文件位置
# vim /etc/rsyslog.conf
2进入ssh配置文件,将ssh配置成使用local6
# vim /etc/ssh/sshd_config
3 重启服务
#systemctl restart rsyslog.service sshd?
4 验证,并查看本机日志
通过网络将本地的日志远程备份到另一台机器
关闭两台机器的防火墙与selinux
日志管理工具? ?? journalctl
? # /etc/systemd/journald.conf?
日志转储? ?logrotate
-
计划任务:/etc/cron.daily/logrotate
-
程序文件:/usr/sbin/logrotate
-
配置文件: /etc/logrotate.conf
?
?例子: nginx? ? (切记马传斌这个实验还没有做)
分割日志
因为在httpd的配置文件中规定:访问httpd服务通过的日志文件只能存放在/var/log/httpd/access_log中?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!