首页 > 系统相关 >Linux文件与日志

Linux文件与日志

时间:2024-07-03 15:30:53浏览次数:18  
标签:文件 sdb1 dev extundelete Linux 日志 inode

目录

1. Linux 文件系统

1.1 inode号

1.2 EXT类型文件恢复

1.3 xfs类型文件备份和恢复

2. 日志分析

2.1 日志类型

2.2日志配置文件

2.3 日志分析的重要性


在Linux系统中,文件和日志是管理和维护系统运行所不可或缺的。理解它们的工作原理和如何有效地管理和分析是每个系统管理员和开发人员的必备技能。

1. Linux 文件系统

1.1 inode号

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”,每个扇区存储512字节。一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。

我们平时所创建的文件还有系统自己的配置文件等都是放在这些扇区中。那么,系统中如此多的文件,有些时候明明看文件内容是空的,但是却占用了一定的磁盘空间,这是为何呢?还有些文件名特别长,而且杂乱无章,那么该如何快速的找到这个文件呢?其实,每个文件都有它自己的属性,我们称之为文件的元信息,存储文件元信息的地方就叫做inode,每个文件都有自己的独一无二的inode(之前说过软连接硬链接,硬连接的inode号和源文件一样),并且,至少占用一块block,每个inode的大小,一般是128字节或256字节,这就是为什么,明明有些文件内容是空的,却占用了一定的空间。Linux系统中,我们可以用

stat 文件名             

或者

ls -i 文件名

来查看文件的inode号,注意,目录是不可以查看的,就像每个人都有身份证,他们的家庭有家庭证吗?那肯定没有,目录有其他表示它的东西。

我们也可以用 

df-i

命令查看每个硬盘分区对应的的inode总数和已经使用的inode数量。

前面也说到每个inode号都会占据128字节的空间,我们可以df -Th 看一下硬盘已用空间

假如我们有一块5GB的硬盘,5GB = 5 × 1024MB = 5120MB,每个inode大小 = 128字节 = 0.125KB

5GB的硬盘总大小 = 5120MB = 5120 × 1024KB,每1KB设置一个inode,所以有5120 × 1024个inode

那么每个inode大小为0.125KB,所以inode table的总大小 = 5120 × 1024 × 0.125KB = 655360KB = 640MB

所以可以得出 inode table的大小占硬盘比例 = (640MB / 5120MB) × 100% ≈ 12.5%

所以说了这么多,我们只知道它代表一个文件,node号有啥用呢?

当一个文件文件名包含特殊字符或者这个文件名非常非常长,可能无法正常删除。这时候我们直接删除它的inode号,也能够起到删除文件的作用。其他作用暂时也不需要了解,只要知道,移动文件或重命名文件,只是改变文件名,不影响inode 号码,文件数据被修改保存后,会生成一个新的inode 号码,我们也可以通过inode号来查找文件  用 find -inum  命令

1.2 EXT类型文件恢复

前面说到我们可以根据文件的inode号删除文件,但要知道,inode号虽说不是很长,但也有六七位,七八位,难免有的时候会输错,毕竟,有些人连六位数验证码都要看两遍。那么,文件不小心删错了该怎么办呢?

首先,如果是EXT类型的文件,我们需要用到  extundelete   这是一个开源的数据恢复工具,支持ext3、 ext4文件系统。

首先创建一个磁盘分区,步骤在我前面的博客中有些,这里就快速操作跳过了。

partprobe /dev/sdb                         重新读取分区表

mkfs.ext3 /dev/sdb1                       格式化

mkdir /test                                        

mount /dev/sdb1 /test                     将sdb1挂载到test目录   

yum -y install e2fsprogs-devel e2fsprogs-libs gcc gcc-c++                  安装依赖包

cd /test           

wgethttp://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

我是有这个压缩包,直接拖进去的

tar jxvf extundelete-0.2.4.tar.bz2             解压缩

cd extundelete-0.2.4/                        

./configure && make && make install

ln -s /usr/local/extundelete/bin/* /usr/bin/        

cd /test

echo a>a              

echo b>b

echo c>c

echo d>d                       创建1234四个文件夹,分别写入1234

extundelete /dev/sdc1 --inode 2           查看文件系统/dev/sdc1下存在哪些文件,i节点是从2开始的,2代表该文件系统最开始的目录。

rm -rf a  b                   删除

umount /test

extundelete /dev/sdc1 --restore-all             恢复/dev/sdc1 文件系统下的所有内容

然后我们就会在目录下发现一个RECOVERED_FILES/目录,里面就存放着我们刚才删除的文件

1.3 xfs类型文件备份和恢复

CentOs 7系统默认采用xfs类型的文件,xfs类型文件如果被误删了呢?xfs 类型的文件可使用xfsdump 与xfsrestore 工具进行备份恢复。

xfsdump  命令格式为

xfsdump | -f     备份存放位置 要备份的路径或设备文件

但是有几点,只能备份已挂载的文件系统,而且必须使用root的权限才能操作。

下面来实机演示一下

首先还是先创建磁盘分区

fdisk /dev/sdb

然后格式化   mkfs

mkdir /data

mount /dev/sdb1 /data/

cd /data

cp /etc/passwd ./

mkdir test

touch test/a

rpm -qa | grep xfsdump

yum install -y xfsdump

xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]

xfsdump -f /opt/dump_sdb /dev/sdb1 -L dump_sdb -M sdb1

---模拟数据丢失并使用xfsrestore 命令恢复文件

cd /data/

rm -rf ./*

ls

xfsrestore -f /opt/dump_sdb1 /data/

可以看到,删除的两个文件恢复了

2. 日志分析

2.1 日志类型

日志文件记录了系统和应用程序的运行状态、事件和错误信息。它是存储数据的容器,提供了访问和管理文件的方法。对日志文件进行分析可以帮助管理员诊断问题、监控系统性能并执行安全审计。目录通常都存放在 /var/log/目录下,由/etc/rsyslog.conf 配置文件管理。常见的日志文件有以下几种

系统日志(/var/log/messages):记录系统级事件和错误信息,如启动、关机、服务启动和停止等。

计划任务日志(/var/1og/cron ): 记录crond计划任务产生的事件信息。

安全日志(/var/log/secure):记录用户登录、权限更改和安全相关事件,对于安全审计非常重要。

应用程序日志:各种应用程序会生成自己的日志文件,记录其运行状态和错误信息。例如,Web 服务器日志是  /var/log/httpd/access_log ,记录 HTTP 请求和响应信息。

邮件系统日志:(/var/log/maillog): 记录进入或发出系统的电子邮件活动。

2.2日志配置文件

我们查看一下  /etc/rsyslog.conf   文件

set nu  设置以下行号,在54行有这样一段代码

*.info             --表示info等级及以上的所有等级的信息都写到对应的日志文件里

等级从高到底依次是

0 EMERG(紧急):会导致主机系统不可用的情况

1 ALERT(警告):必须马上采取措施解决的问题

2 CRIT(严重):比较严重的情况

3 ERR (错误) :运行出现错误

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件

5 NOTICE (注意) :不会影响正常功能,但是需要注意的事件

6 INFO(信息):一般信息

7 DEBUG(调试):程序或系统调试信息等。

mail.none            --这部分表示排除所有与邮件相关的日志消息,即不捕获 mail 的任何日志消息。

后面的  authpriv.none  和 cron.none  也是同样的意思

再后面那一块被水印挡住了,那个可以根据上面给出的日志类型,看出是系统日志

我们来进入系统日志看一下  /var/log/messages

可以看到,红黄蓝绿的,眼花缭乱

我们一种颜色一种颜色把它拆解开来

分别是 时间   主机名  子系统名称  具体信息

具体信息那一栏我们看到红色  就说明是报错信息,比如这里就有一段报错信息,根据报错信息,我们就能知道哪里出了问题,从而去解决问题。

2.3 日志分析的重要性

有效的日志分析可以帮助管理员实时监控系统健康状态、及时发现和解决问题,提升系统的稳定性和安全性。定期审查和分析日志还可以帮助预测和规划系统的未来需求,优化系统资源的使用。

总结来说,Linux 文件系统和日志分析是系统管理中不可或缺的一部分,通过深入了解和适当的工具使用,管理员可以更好地管理和优化Linux系统的运行。

标签:文件,sdb1,dev,extundelete,Linux,日志,inode
From: https://blog.csdn.net/qq_59677536/article/details/140133889

相关文章

  • linux_centos镜像下载及百度网盘分享链接
    1.Centos镜像国内最全下载地址CentOS官方下载地址:https://www.centos.org/download/Centos国内下载源http://man.linuxde.net/download/CentOShttp://mirrors.btte.net/centoshttp://mirrors.cn99.com/centos (希网)http://mirrors.sohu.com/centos (搜狐)http://mirrors.aliyun.......
  • 5% 消耗,6 倍性能:揭秘新一代 iLogtail SPL 日志处理引擎与 Logstash 的 PK
    作者:阿柄引言在当今数据驱动的时代,日志收集和处理工具对于保障系统稳定性和优化运维效率至关重要。随着企业数据量的不断增加和系统架构的日益复杂,传统日志处理工具面临着性能、灵活性和易用性等多方面的挑战。Logstash作为一款广受欢迎的开源日志收集与处理工具,早已广泛应用于......
  • 读取.net core配置文件appsetting.json内容
    appsetting.json内容//省略部分代码...//代码生成相关"CodeCreatorInfo":{"xmlPath":"11111",//xml路径(绝对路径)"jsRootPaht":"2222",//js文件夹路径"Controllers":"333",//特殊Controller列表,逗号隔开......
  • VSCODE 编辑markdown 文件
    因为Obsidian版权问题,改用vscode编辑器 编辑markdown文件1.使用VSCODE编辑markdown文件首先分别下载Markdown和markdownPDF第三方插件2.保存文件为md格式,如果需要缓存图片,可以点击右上角的预览模块。就可以看图片了(window和linux服务器都是/分隔符)如果是图片,就是......
  • linux常用命令
    1.查看lllstail-2000fxx 可以限制查看的范围catxx 查询jdk的安装路径:echo$JAVA_HOME 查看文件安装路径:whereismysql 查询运行文件所在路径:whichmysql 查看日志:如果日志是在tomcat下的logscd/xxx/xxx/tomcat/logs/tail-2000fxxx.log 2.修改文......
  • 如何批量修改文件名?4个简单的方法
    在日常工作和学习中,我们经常需要处理大量的文件,并对这些文件的命名进行统一管理。但是,手动逐个修改文件名不仅效率低下,还容易出错。因此,掌握批量修改文件名的技巧变得尤为重要。下面将介绍四种简单的方法,帮助你轻松实现批量修改文件名。如何批量修改文件名?4个简单的方法方法......
  • 进程管理_Linux渗透_安全加固
    爆破工具:Hydra、Medeusa、msf    重要单词:session,Venom(毒液) top    任务管理器pgrep 查找运行的进程    -l列出进程名称pkill终止进程 跟进程名称    -9强制kill-9PIDsleep暂停vsftpd2.3.4-笑脸漏洞利用    ......
  • Linux服务器安装MySQL数据库
    首先yum安装的版本比较低,所以先下载一个yum比较新的库文件点击就是下载到本地,如果想在Linux里面下载就需要右击复制链接1.安装MySQL:sudoaptupdatesudoaptinstallmysql-server2.可以通过sudosystemctlstatusmysql命令查看MySQL是否已启动3.设置登录密码......
  • 解决《植物大战僵尸》系列游戏缺失DLL文件的终极指南
    在享受《植物大战僵尸》这款经典塔防游戏的乐趣时,你可能会遇到因缺失DLL文件而导致的游戏启动失败或运行错误的问题。不要担心,这其实是一个相对常见的问题,且有多种解决方法可以帮助你快速回到与僵尸斗智斗勇的战场。本文将针对几种常见的DLL文件丢失问题,如msvcp100.dll、gdiplu......
  • 如何批量修改PPT文件名?批量修改文件名的四个方法在这里
    在日常工作中,我们经常需要处理大量的PPT文件。然而,随着项目的增多和时间的推移,PPT文件的命名往往变得杂乱无章,给查找和使用带来了极大的不便。因此,掌握给PPT文件批量重命名的方法显得尤为重要。本文将详细介绍4种简单有效的PPT文件批量重命名方法,帮助您轻松管理PPT文件。方法......