了解内容///遇事不决看日志
1.inode与block
2.硬连接与软连接
3.恢复误删除的文件
4.分析日志文件
一.inode (元数据)与 block(实际数据)
-
文件数据包括 元信息 与 实际数据
-
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block(块)
-
连续的八个扇区组成一个block
-
是文件存取最小单位
inode(索引节点)
-
中文译名为“索引节点”,也叫i节点
-
用于储存文件元信息
二.查看inode号方式
ls -i
stat
df -i
问答:为什么磁盘空间很大,却不能建立文件。
答:因为inode号用光了
解决方式:删文件,删空文件
三.inode的内容
- 目录文件结构:
目录也是一种文件
目录文件结构
- 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
- Linux系统内部不使用文件名,而使用inode号码来识别文件
- 对于用户,文件名只是inode号码便于识别的别称
###### cp 和 inode
-
cp命令:
-
分配一个空闲的inode号,在inode表中生成新条目
-
在目录中创建一个目录项,将名称与inode编号关联
-
拷贝数据生成新的文件
###### rm 命令 删除 rm -rf
-
硬链接数递减,从而释放的inode号可以被中用
-
把数据块放在空闲列表中
-
删除目录项
-
数据实际上不会马上被删除
mv和inode
-
如果mv命令的目标和源在同一设备,
-
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
-
删除旧的目录对应关系新建目录对应关系
四. 日志
日志功能是什么:
-
用于记录系统,程序运行中发生的各种事件
-
通过阅读日志,有助于诊断解决系统故障
常见的一些日志文件
| 日志文件位置 | 日志文件说明 |
|---|---|
| /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等命令查看 |
日志文件的格式
- 事件产生的时间。
- 产生事件的服务器的主机名。
- 产生事件的服务名或程序名。
- 事件的具体信息。
信息的优先级
0 EMERG(紧急):会导致主机系统不可用的情况。
1 ALERT(警告):必须马上采取措施解决的问题。
2 CRIT(严重):比较严重的情况。
3 ERR(错误):运行出现错误。
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。
6 INFO(信息):一般信息。
7 DEBUG(调试):程序或系统调试信息等
查询当前登录的用户情况
user
who
w
查询用户登录的历史记录
last:查 询用户登录的历史记录
lastb:查询登录失败的用户记录,
lastlog:查看每一个用户最近登录信息
五.日志服务管理
rsyslog 系统日志服务软件
rsyslog 特性
- 多线程
- UDP, TCP, SSL, TLS, RELP
- MySQL, PGSQL, Oracle实现日志存储
- 强大的过滤器,可实现过滤记录日志信息中任意部分
- 自定义输出格式 可以日志
- 适用于企业级
服务名称
什么服务 的日志
| 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) | 邮件收发信息 |
rsyslog 相关文件
- 程序包:rsyslog
- 主程序:/usr/sbin/rsyslogd
- CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
- CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
- 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
- 库文件: /lib64/rsyslog/*.so
实际操作,将ssh服务的日志单独设置
1.vim编辑 /etc/ssh/sshd_config
修改ssh的配置文件/etc/ssh/sshd_config,32下一行添加自己的自定义
2.vim 编辑 /etc/rsyslog.conf
修改/etc/rsyslog.conf配置文件在76行添加自己的文件位置
重启服务
用ssh连接自己的主机
设置完成
网络日志(远程日志功能)具体操作
以主机和副机A为例
1.关闭防火墙
2.编辑配置文件 /etc/rsyslog.conf ///将19,20行的#号删除
3.重启使生效 systemctl restart rsyslog.service
4.查看端口是否开启
5.修改主机A的配置文件
6.重启使生效
编辑接收方主机配置文件
1.关闭防火墙
2.编辑配置文件编辑 /etc/rsyslog.confg
3.用副机发信息给接收方的主机
logger 'hellow 222 fromA'