当前位置: 首页 > article >正文

文件系统和日志管理 附实验:远程访问第一台虚拟机日志

文件系统和日志管理

文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘)。

硬件设备上对文件的管理

文件存储在硬盘上,硬盘最小的存储单位是512字节,扇区。

文件在硬盘上的最小存储单位:块 block 一个块的大小是4k

一个块就是连续的8个扇区

存储文件的方式:

实际数据和元信息

实际数据:文件内部的数据保存在硬盘上

元信息:文件的所有者、所在组、最后一次修改时间,文件的大小,文件的权限

存储元信息的标识:inode号

inode:不包含文件名,每个文件(目录)创建都会分配一个全局(当前设备)唯一的识别码

识别码inode,当一个文件被删除之后,inode号也会回收,供下一个文件继续使用。

/dev/sdb1 /data1 2

/dev/sdc1 /data2 2

系统都是识别文件的inode号

一个文件必须有一个inode号,至少占用一个块。

inode号 元信息

1、获取文件的inode

2、找到文件在磁盘当中的位置

3、根据元信息查询这个用户的权限

4、由权限才能对文件进行指定的操作

5、更新数据------文件内容进行了修改,inode号有可能发生变化。

6、如果权限发生变化,inode一定会变

inode号用尽了,文件无法再创建了,怎么查看一个文件系统可用的inode号?

df -i 查看挂载点inode号使用的情况

inode号:硬盘的空间越大,可用的inode号越多。

工作当中的涉及的环境:

dev: 开发环境 开发人员专用

sit::测试环境 测试人员以及运维人员使用的环境

pre:预生产环境 sit和pre环境与生产环境是同步的 开发 测试 运维

prd:生产环境 对外提供访问的环境

jnode号和文件名分离,使得linux操作系统会出现以下几个现象:

文件包含特殊字符可能无法正常删除(rm -rf),只能通过inode号进行删除

剪切或者重命名文件,inode号不会发生变化

当我们对文件进行操作时,系统以inode号来识别,不以文件名

文件的数据发生变化,文件的权限发生变化,inode号也会发生变化。

模拟inode号耗尽的情况:

ext4 用完了inode号,ext4文件不能在创建文件

xfs inode号用尽,xfs还可以创建文件70-80个 200-400个

xfs实现备份和恢复:(apt -y install xfsdump xfsprogs)10:39

xfsdump  备份
xfsrestore  恢复
xfsdump恢复有两个级别:0 1-9
0:表示完全备份
1-9:增量备份(不用)
xfsdump默认级别就是0,全量备份

xfsdump的常用选项:

-f  指定备份文件目录

-L 指定标签

-M 指定设备标签

-s  备份单个文件(一般不使用)

xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]

-f /opt/backup backup是一个文件,而且必须是空文件,否则备份会失败而且不能是目录

/dev/sdb2 备份的设备

-L 备份文件的标签
-M 备份设备的标签

把/dev/sdb2里面的所有文件备份到/opt/backup的文件当中。备份的是二进制代码,通过代码恢复inode号。

xfsrestore -f /opt/backup /data2

-f 指定从哪个备份文件进行恢复

日志系统:

日志:记录系统或者是应用运行期间“所有信息”的文档。记录了一些必要信息,关键的信息

信息的意义:

1、判断系统或者程序是否正常

2、记录了故障的信息,告诉我们是什么原因产生的故障

一般来说,系统的日志:

/var/log/syslog

/var/log/messages

服务日志:

1、一般的应用安装完成之后,/var/log/服务的名称/

2、自定义位置,修改应用的配置文件,可以自定义服务的日志路径

3、日志的位置就在应用的安装目录 logs目录

基本上90%的应用日志的目录都是logs

都是以log为结尽的文件

常见的系统日志文件:
/var/log/syslog:记录了Linux系统的内核消息以及各种应用的公共日志信息(系统控制产生的消息),包括启动,IO错误,网络错误,程序的故障等等。

服务自己的日志:记录的就是使用这个程序过程中产生的信息,不会记录到系统的日志中。

系统日志:基本操作系统控制,产生的日志信息

/var/log/cron:记录的时定时任务产生的信息

/var/log/secure:用户登录系统认证的相关信息

/var/log/maillog:记录的是电子邮件的信息

linux日志的级别:

0-7:

数字越小,优先级越高,消息越重要

0 EMERG 紧急,系统/应用不可用,系统崩溃,服务崩溃的重要信息。

1 ALERT 警告,必须马上采取措施的信息,磁盘快满了,数据库被破坏

2 CRIT 严重,程序的功能丧失,程序无法正常访问

3 ERROR 错误,运行出现了错误,需要尽快修复(看情况)

4 warning 提醒 可能影响,但是不重要,只是提醒用户。不属于报错的范围

5 NOTICE 注意 不影响正常功能,但是需要注意的时间,无需处理

6 INFO 信息 一般信息,正常运行的信息。

7 DEBUG 调试 开发人员调试程序时产生的信息

none 没有优先级,不记录任何消息日志

以上的优先级,可以用户自定义日志的级别,已获取我们想要的内容。

*info;mail.none:nginx.=error /var/log/syslog

所有的程序的一般及一般以上和邮件的日志不记录和nginx只记录error的日志 保存到/var/log/syslog。

设备的字段:

auth 用户认证的日志

systemd 系统管理程序的日志

cron 定时任务的信息

user 用户进程信息

mail 邮件信息

kern 系统内核的信息

local 自定义服务,我们可以自己定义我们需要保存的日志0-7都可以使用。对应的程序设置的local等级要一致

系统日志:

Nov 7 13:54:33 test1 systemd[1]: Failed to start A high performance web server and a reverse proxy server.

Nov 7 13:54:33: 日志产生的时间

test1 主机名

systemd[1]: systemd就是设备字段 [1], 运行的pid号 systemd这个程序是系统当中的第一个进程

 systemd是所有进程的父进程,

Failed to start A high performance web server and a reverse proxy server: 日志的内容

应用日志:

192.168.233.1 -- 07/Nov/2024:13:52:58 +0800 "GET /123 HTTP/1.1" 404 197 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"

192.168.233.1: 谁访问了nginx的服务

[07/Nov/2024:13:52:58 +0800]: 访问nginx的时间

"GET /123 HTTP/1.1": GET 访问nginx的方式

/123 访问的内容

http/1.1: 访问使用协议

404:当对方请求后,nginx给客户端的响应码,告诉用户访问的结果是成功还是失败

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"

记录客户端访问nginx的方式。

ssh服务单独存放:

rsyslog Linux系统管理系统日志的工具。

journalctl 日志管理管理:查看系统日志,应用日志不再管理范围之内

journalctl -u 应用名称

journalctl _PID=? 进程的pid号

查看指定用户的日志:

journalctl _UID=0 --since today #指定用户今天的日志

journalctl _UID=0 --since yesterday #指定用户昨天产生的日志

journalctl -xe

查看系统中systemd的错误的日志

实验:第二台虚拟机远程访问第一台虚拟机的日志

cd到opt目录下,vim /etc/rsyslog.conf文件

打开后set nu显示行数

在第50行输入local6代码,wq保存退出

修改sshd文件

修改sshd的配置文件

找到在第28行下面输入之前的local6配置文件,注意这里的local要大写

只要修改了应用的配置文件,一定要重启才生效,分别重启rsyslog和sshd,重启后cd到/var/log发现有ssh.log文件,如果没有可以看下一步

来到第二个虚拟机 ssh root 远程连接到第一个

出现此界面成功,此时var/log目录下就会出现ssh.log,打开xshell连接就相当于是ssh 这个命令,只是没有图形化界面

tail一下ssh.log命令看一下最后一行已经连接成功了,当你重复开启第一个xshell连接时,此处的日志会反复刷新


http://www.kler.cn/a/384298.html

相关文章:

  • 基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
  • Flutter自定义矩形进度条实现详解
  • uni生成海报并保存
  • 云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例
  • 招聘系统哪个最好用?
  • 什么是蜂窝移动网络
  • Java:网络原理-TCP/IP
  • TARE-PLANNER学习记录
  • Chat GPT英文学术写作指令
  • HTML第二次作业
  • 力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
  • ubuntu 22.04 硬件配置 查看 显卡
  • 轻型民用无人驾驶航空器安全操控------理论考试多旋翼部分笔记
  • 【C/C++】strncpy函数的模拟实现
  • 科技查新在人工智能领域的重要性
  • php扩展安装
  • Zookeeper 简介 | 特点 | 数据存储
  • spring boot 难点解析及使用spring boot时的注意事项
  • 原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
  • 2024 开源社年度评选
  • sql server 文件备份恢复
  • 论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)
  • 浏览器内置对象XMLHttpRequest
  • 写了个建表语句 review 的 prompt
  • MySQL 9从入门到性能优化-加密函数
  • 【ARM Linux 系统稳定性分析入门及渐进 1.4 -- Crash 工具调用】