深入理解Linux文件系统于日志分析

目录

一.Inode 和 block 概述

​编辑 

1.inode 的内容

(1)Inode 包含文件的元信息

 (2)用 stat 命令可以查看某个文件的 inode 信息

(3) Linux系统文件三个主要的时间属性

(4)目录文件的属性

(5)inode 的号码

2.查看 inode 号码的办法

3.inode 的大小

4.inode 的特殊作用

5.链接文件

6.文件存储小结

二.文件恢复

1.恢复EXT类型的文件

模拟实验步骤流程

2.恢复XFS类型的文件

(1)xfsdump 使用限制

(2)备份操作模拟实验

三.日志文件

1.日志的功能

2.日志文件的分类

3.日志的保存位置: 默认 /var/log 目录下

 4.主要的日志文件

5.管理日志的系统服务-rsyslog

6.日志的级别(数字等级越小,优先级越高,消息越重要)

7.日志的一般格式

8.用户日志分析

9.程序分析日志

10.journalctl 日志管理工具

一.Inode 和 block 概述

在Linux系统中,文件名和文件数据是分开存储的
文件数据包含 元信息(即不包含文件名的文件属性) 和 实际数据
文件元信息存储在 inode(索引节点)里,文件实际数据存储在 block(块)里;

文件名存储在目录块

inode (索引节点

中文译名为“索引节点”,也叫i节点

用于存储文件元信息

block (块)

连续的八个扇区组成的一个 block (4K)

是文件存取的最小单位

 

一个文件必须占用一个inode,但至少占用一个block

1.inode 的内容

(1)Inode 包含文件的元信息

文件的字节数

文件拥有者的 User ID (不包含文件名)

文件的 Group ID

文件的读、写、执行权限

文件的时间戳

 (2)用 stat 命令可以查看某个文件的 inode 信息

格式为:    stat 文件名
[root@localhost ~]# cd /opt/            
[root@localhost opt]# ls
rh
[root@localhost opt]# stat rh           #查看/opt/目录下rh文件的元信息
  文件:"rh"
  大小:6         	块:0          IO 块:4096   目录
设备:fd00h/64768d	Inode:35246718    硬链接:2
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:usr_t:s0
最近访问:2018-10-31 03:17:56.000000000 +0800
最近更改:2018-10-31 03:17:56.000000000 +0800
最近改动:2024-04-07 06:46:12.163932733 +0800
创建时间:-
[root@localhost opt]# cd /tmp/
[root@localhost tmp]# ls
anaconda.log
[root@localhost tmp]# stat anaconda.log        #查看/tmp/目录下文件元的信息
  文件:"anaconda.log"
  大小:1149      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:33577996    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:tmp_t:s0
最近访问:2024-04-07 06:51:40.923956773 +0800
最近更改:2024-04-07 06:53:37.023947704 +0800
最近改动:2024-04-07 06:53:37.023947704 +0800
创建时间:-
[root@localhost tmp]# 

(3) Linux系统文件三个主要的时间属性

ctime (change time)

最后一次改变文件或目录(属性)的时间

atime (sccess time)

最后一次访问文件或目录的时间

mtime (modify time)

最后一次修改文件或目录(内容)的时间;当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

 用     start + 文件名    查看文件的元信息和 inode 号

拓展: ls -i 文件名也可以查看文件的 inode 号

               #原本文件里面显示的三个时间的信息
最近访问:2024-04-07 06:51:40.923956773 +0800
最近更改:2024-04-07 06:53:37.023947704 +0800
最近改动:2024-04-07 06:53:37.023947704 +0800


[root@localhost tmp]# cat anaconda.log        #查看文件内容
[root@localhost tmp]# stat anaconda.log   #再次查看文件的信息,发现最近访问时间改变
  文件:"anaconda.log"
  大小:1149      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:33577996    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:tmp_t:s0
最近访问:2024-04-23 10:05:54.887838257 +0800
最近更改:2024-04-07 06:53:37.023947704 +0800
最近改动:2024-04-07 06:53:37.023947704 +0800
创建时间:-
[root@localhost tmp]# vim anaconda.log          #修改文件内容
[root@localhost tmp]# stat anaconda.log        
                                #再次查看文件的信息,发现最近更改和最近改动都发生改变
  文件:"anaconda.log"
  大小:1149      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:33577996    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:tmp_t:s0
最近访问:2024-04-23 10:05:54.887838257 +0800  atime  最近的文件访问时间
最近更改:2024-04-23 10:06:16.728999744 +0800  mtime  最近的文件内容修改时间
最近改动:2024-04-23 10:06:16.729999752 +0800  ctime  最近的文件属性修改时间
创建时间:-
[root@localhost tmp]# 

(4)目录文件的属性

(5)inode 的号码

用户通过文件名打开文件时,系统内部的过程

【1】系统找到这个文件名对应的 inode 号

【2】通过 inode 号码,获取 inode 信息

【3】根据 inode 信息,找到文件数据所在的 block ,读出数据

2.查看 inode 号码的办法

stat  文件名  查看 inode 信息中的 inode 号码
ls -i 文件名  可以查看指定文件的 inode 号

        #ls -i 用法
[root@localhost opt]# ls -i a.txt 
67414818 a.txt

3.inode 的大小

(1)inode  也会消耗硬盘空间大小

每个 inode 的大小,一般是128字节或者256字节;

(2)格式化文件系统的时候已经分配好 inode 的总数

(3)使用 df -i 命令可以查看硬盘分区的 inode 总数和已经使用的数量

[root@localhost opt]# df -i     #可以查看每个硬盘上的 inode 的信息
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
devtmpfs                  478388     400   477988       1% /dev
tmpfs                     482657       1   482656       1% /dev/shm
tmpfs                     482657    1498   481159       1% /run
tmpfs                     482657      16   482641       1% /sys/fs/cgroup
/dev/mapper/centos-root 18610176  160273 18449903       1% /
/dev/sda1                 262144     341   261803       1% /boot
tmpfs                     482657      21   482636       1% /run/user/0
/dev/sr0                       0       0        0        - /run/media/root/CentOS 7 x86_64
[root@localhost opt]# df -hT    #可以发现在没有输入任何数据的时候,硬盘已经使用一部分容量
文件系统                类型      容量   已用   可用  已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.6G   31G   13% /
/dev/sda1               xfs       509M  181M  329M   36% /boot
tmpfs                   tmpfs     378M   36K  378M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
[root@localhost opt]# 

4.inode 的特殊作用

(1)由于 inode 号码与文件名分离,导致一些 Unix/Linux 系统具有以下的现象

【1】当文件名包含特殊字符,可能无法正常删除文件,直接删除 inode ,也可以删除文件

[root@192 opt]# touch *123456 123456 a.txt     #创建三个文件
[root@192 opt]# ls
123456  *123456  a.txt
[root@192 opt]# ls -i                          #查看他们的 inode 号
67415980 123456  67415977 *123456  67415994 a.txt
[root@192 opt]# find ./ -inum 67415980 -exec rm -rf {} \;   #根据 inode 号删除
[root@192 opt]# ls
*123456  a.txt
[root@192 opt]# find ./ -inum 67415977 -delete              #根据 inode 号删除
[root@192 opt]# ls
a.txt
[root@192 opt]# find ./ -inum 67415994 | xargs rm -f        #根据 inode 号删除
[root@192 opt]# ls
[root@192 opt]# 
                           #拓展:使用了三种删除方法

【2】移动或重命名文件时,只改变文件名,不影响 inode 号码

[root@192 opt]# touch abc.txt          #创建abc.txt
[root@192 opt]# ls -i                  #查看文件的 inode 号
67193849 abc.txt
[root@192 opt]# mv abc.txt 123.txt     #将文件进行重命名
[root@192 opt]# ls -i                  #查看文件的 inode 号
67193849 123.txt                       #文件名改了,但是 inode 号没变
[root@192 opt]# mv 123.txt /root/      #将文件移动到/root/目录下
[root@192 opt]# ls 
[root@192 opt]# cd /root/
[root@192 ~]# ls -i | grep 123.txt     #查看文件的 inode 号,也没有变
67193849 123.txt
 

拓展:直接查看、修改文件内容或者改变文件名都不会影响 inode 号;但是vim 编辑器修改文件内容保存退出后,会影响 inode 号;vim 编辑器是产生一个.swp文件去修改,然后替代掉原文件。

【3】打开一个文件后,系统通过 inode 号码来识别该文件,不在考虑文件名

5.链接文件

(1)硬链接

ln 源文件 目标位置

(2)软链接

ln -s 源文件或目录...  链接文件或目录位置

6.文件存储小结

二.文件恢复

1.恢复EXT类型的文件

(1)编译安装 extundelete 软件包

(2)模拟删除并执行恢复

注意:extundelete工具目前只能恢复ext类型的文件

模拟实验步骤流程

【1】使用fdisk创建分区/dev/sdb1,并格式化为ext3文件系统;

[root@192 ~]# fdisk /dev/sdb                  #对硬盘进行分区
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xe0dda7c8 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@192 ~]# fdisk -l              #查看分好区的硬盘

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe0dda7c8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux
 
[root@192 ~]# mkfs -t ext3 /dev/sdb1      #格式化硬盘为ext3的文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

【2】创建一个目录,并挂载到硬盘上,然后安装 extundelete 软件的依赖包

[root@192 ~]# mkdir /test
[root@192 ~]# mount /dev/sdb1 /test/
[root@192 ~]# cd /opt/
[root@192 opt]# ls
abc.txt  extundelete-0.2.4.tar.bz2
[root@192 opt]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@192 yum.repos.d]# yum install -y e2fsprogs-libs e2fsprogs-devel
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 e2fsprogs-libs-1.42.9-19.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 e2fsprogs-devel.x86_64.0.1.42.9-19.el7 将被 安装
--> 正在处理依赖关系 libcom_err-devel(x86-64) = 1.42.9-19.el7,它被软件包 e2fsprogs-devel-1.42.9-19.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(com_err),它被软件包 e2fsprogs-devel-1.42.9-19.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libcom_err-devel.x86_64.0.1.42.9-19.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决
............中间省略....................
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : libcom_err-devel-1.42.9-19.el7.x86_64                                      1/2 
  正在安装    : e2fsprogs-devel-1.42.9-19.el7.x86_64                                       2/2 
  验证中      : libcom_err-devel-1.42.9-19.el7.x86_64                                      1/2 
  验证中      : e2fsprogs-devel-1.42.9-19.el7.x86_64                                       2/2 

已安装:
  e2fsprogs-devel.x86_64 0:1.42.9-19.el7                                                       

作为依赖被安装:
  libcom_err-devel.x86_64 0:1.42.9-19.el7    

【3】编译安装extundelete压缩包

[root@192 yum.repos.d]# cd /opt/
[root@192 opt]# ls
abc.txt  extundelete-0.2.4.tar.bz2
[root@192 opt]# tar xf extundelete-0.2.4.tar.bz2 
[root@192 opt]# ls
abc.txt  extundelete-0.2.4  extundelete-0.2.4.tar.bz2
[root@192 opt]# cd extundelete-0.2.4/
[root@192 extundelete-0.2.4]# ls
acinclude.m4  autogen.sh   configure     depcomp     LICENSE      Makefile.in  README
aclocal.m4    config.h.in  configure.ac  install-sh  Makefile.am  missing      src
[root@192 extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete
Configuring extundelete 0.2.4
Writing generated files to disk
[root@192 extundelete-0.2.4]# make && make install
make -s all-recursive
Making all in src
extundelete.cc: 在函数‘ext2_ino_t find_inode(ext2_filsys, ext2_filsys, ext2_inode*, std::string, int)’中:
extundelete.cc:1272:29: 警告:在 {} 内将‘search_flags’从‘int’转换为较窄的类型‘ext2_ino_t {aka unsigned int}’ [-Wnarrowing]
    buf, match_name2, priv, 0};
                             ^
Making install in src
  /usr/bin/install -c extundelete '/usr/local/extundelete/bin'
[root@192 extundelete-0.2.4]# cd /usr/local/
[root@192 local]# ls
bin  etc  extundelete  games  include  lib  lib64  libexec  sbin  share  src
[root@192 local]# cd extundelete/
[root@192 extundelete]# ls bin/
extundelete
[root@192 extundelete]# cd bin/
[root@192 bin]# ls
extundelete
[root@192 bin]# ln -s /usr/local/extundelete/bin/extundelete /usr/local/bin/
[root@192 bin]# cd 
[root@192 ~]# ex
ex           exempi       expand       exportfs     extundelete  
exec         exit         export       expr         

【4】创建文件,并进行查看

[root@192 bin]# cd /test/
[root@192 test]# ls
[root@192 test]# echo '123456' > 123.txt
[root@192 test]# echo 'abcdef' > abc.txt
[root@192 test]# echo 'i like games' > 456.txt
[root@192 test]# ls
123.txt  456.txt  abc.txt
[root@192 test]# extundelete /dev/sdb1 --inode 2

NOTICE: Extended attributes are not restored.
WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set.
The partition should be unmounted to undelete any files without further data loss.
If the partition is not currently mounted, this message indicates 
it was improperly unmounted, and you should run fsck before continuing.
If you decide to continue, extundelete may overwrite some of the deleted
files and make recovering those files impossible.  You should unmount the
file system and check it with fsck before using extundelete.
Would you like to continue? (y/n) 
y
...................中间省略.....................................

File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
123.txt                                           11
abc.txt                                           12
456.txt                                           13

【5】模拟误删,并进行恢复操作

[root@192 test]# rm -f 123.txt abc.txt
[root@192 test]# ls
456.txt
[root@192 test]# extundelete /dev/sdb1 --inode 2
NOTICE: Extended attributes are not restored.
WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set.
The partition should be unmounted to undelete any files without further data loss.
If the partition is not currently mounted, this message indicates 
it was improperly unmounted, and you should run fsck before continuing.
If you decide to continue, extundelete may overwrite some of the deleted
files and make recovering those files impossible.  You should unmount the
file system and check it with fsck before using extundelete.
Would you like to continue? (y/n) 
y
..........................中间省略....................................

File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
123.txt                                           11             Deleted
abc.txt                                           12             Deleted
456.txt                                           13
[root@192 test]# umount /dev/sdb1
umount: /test:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@192 test]# cd
[root@192 ~]# umount /dev/sdb1
[root@192 ~]# extundelete /dev/sdb1 --restore-all
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 160 groups loaded.
Loading journal descriptors ... 42 descriptors loaded.
Searching for recoverable inodes in directory / ... 
2 recoverable inodes found.
Looking through the directory structure for deleted files ... 
0 recoverable inodes still lost.
[root@192 ~]# ls
anaconda-ks.cfg            initial-setup-ks.cfg  公共  视频  文档  音乐
extundelete-0.2.4.tar.bz2  RECOVERED_FILES       模板  图片  下载  桌面
[root@192 ~]# cd RECOVERED_FILES/
[root@192 RECOVERED_FILES]# ls
123.txt  abc.txt
[root@192 RECOVERED_FILES]# cat *
123456
abcdef
[root@192 RECOVERED_FILES]# 

拓展:磁盘有空间,但是仍然无法写入新文件的可能原因如下所示

1.inode号被占满;

2.磁盘出现了问题

模拟 inode 号被挤满的实验

[root@192 RECOVERED_FILES]# mount /dev/sdc1 /test/
[root@192 test]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
devtmpfs                  478388     422   477966       1% /dev
tmpfs                     482657       1   482656       1% /dev/shm
tmpfs                     482657    1470   481187       1% /run
tmpfs                     482657      16   482641       1% /sys/fs/cgroup
/dev/mapper/centos-root 18610176  159803 18450373       1% /
/dev/sda1                 262144     341   261803       1% /boot
tmpfs                     482657       9   482648       1% /run/user/42
tmpfs                     482657       1   482656       1% /run/user/0
/dev/sr0                       0       0        0        - /mnt
/dev/sdc1                   2560      10     2550       1% /test
[root@192 test]# touch file{1..2550}
[root@192 test]# ls | wc -l
2550
[root@192 test]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.4G   32G   13% /
/dev/sda1               xfs       509M  181M  329M   36% /boot
tmpfs                   tmpfs     378M   12K  378M    1% /run/user/42
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /mnt
/dev/sdc1               ext4      8.7M  222K  7.8M    3% /test
[root@192 test]# echo 123 > 123.txt
-bash: 123.txt: 设备上没有空间
[root@192 test]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
devtmpfs                  478388     422   477966       1% /dev
tmpfs                     482657       1   482656       1% /dev/shm
tmpfs                     482657    1470   481187       1% /run
tmpfs                     482657      16   482641       1% /sys/fs/cgroup
/dev/mapper/centos-root 18610176  159803 18450373       1% /
/dev/sda1                 262144     341   261803       1% /boot
tmpfs                     482657       9   482648       1% /run/user/42
tmpfs                     482657       1   482656       1% /run/user/0
/dev/sr0                       0       0        0        - /mnt
/dev/sdc1                   2560    2560        0     100% /test

2.恢复XFS类型的文件

(1)xfsdump 使用限制

只能备份已挂载的文件系统

必须使用root的权限才能执行

只能备份XFS文件系统

备份后的数据只能让xfsrestore解析

不能备份两个具有相同UUID的文件系统

[root@192 test]# blkid             #查看相关文件系统的UID号
 
/dev/sda1: UUID="4e61eae8-78c3-4999-9778-637a8c3c4f0c" TYPE="xfs" 
/dev/sda2: UUID="dhRL0B-Mc2P-pAko-Z0Kk-pZNE-EHL9-OZ6hoe" TYPE="LVM2_member" 
/dev/sdb1: UUID="c416cb69-6feb-454f-b0ae-d19aaf40f24c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdc1: UUID="5b1728cb-d792-42d5-a6a5-aa5649b1e051" TYPE="ext4" 
/dev/sr0: UUID="2022-07-26-15-09-17-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="03a44f17-4dd1-425b-a9e4-832f930a4e90" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="25b1fdac-878c-4096-aa6e-c73d00730226" TYPE="swap" 

(2)备份操作模拟实验

【1】使用fdisk创建分区/dev/sdc2,格式化xfs文件系统

[root@192 test]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (22528-41943039,默认为 22528):
将使用默认值 22528
Last 扇区, +扇区 or +size{K,M,G} (22528-41943039,默认为 41943039):
将使用默认值 41943039
分区 2 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

[root@192 test]# fdisk -l
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5330399b

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048       22527       10240   83  Linux
/dev/sdc2           22528    41943039    20960256   83  Linux


[root@192 test]# mkfs -t xfs /dev/sdc2
meta-data=/dev/sdc2              isize=512    agcount=4, agsize=1310016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5240064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@192 test]# cd
[root@192 ~]# mount /dev/sdc2 /test/
[root@192 ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.4G   32G   13% /
/dev/sda1               xfs       509M  181M  329M   36% /boot
tmpfs                   tmpfs     378M   12K  378M    1% /run/user/42
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /mnt
/dev/sdc2               xfs        20G   33M   20G    1% /test

【2】安装 xfsdump xfsrestore 软件,并对文件进行复制

[root@192 ~]# ls
anaconda-ks.cfg            initial-setup-ks.cfg  公共  视频  文档  音乐
extundelete-0.2.4.tar.bz2  RECOVERED_FILES       模板  图片  下载  桌面
[root@192 ~]# cp -a * /test/
[root@192 ~]# cd /test/
[root@192 test]# ls
anaconda-ks.cfg            initial-setup-ks.cfg  公共  视频  文档  音乐
extundelete-0.2.4.tar.bz2  RECOVERED_FILES       模板  图片  下载  桌面

[root@192 test]# yum install -y xfsdump xfsrestore

已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 xfsdump-3.1.7-1.el7.x86_64 已安装并且是最新版本
没有可用软件包 xfsrestore。
无须任何处理

[root@192 test]# xfsdump -f /opt/dump_sdc2 /dev/sdc2 -L /test -M sdc2

xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsdump: level 0 dump of 192.168.80.90:/test
xfsdump: dump date: Tue Apr 23 21:13:54 2024
xfsdump: session id: 6a8cb52a-0331-4eaa-92da-39c6bba188dd
xfsdump: session label: "/test"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 152256 bytes
xfsdump: /var/lib/xfsdump/inventory created
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 147488 bytes
xfsdump: dump size (non-dir files) : 117320 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dump_sdc2 OK (success)
xfsdump: Dump Status: SUCCESS

[root@192 test]# cd /opt/
[root@192 opt]# ls

abc.txt  dump_sdc2  extundelete-0.2.4  extundelete-0.2.4.tar.bz2

【3】模拟硬盘被强制格式化,并重新创建文件系统,造成数据丢失

[root@192 opt]# umount /test
[root@192 opt]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.4G   32G   13% /
/dev/sda1               xfs       509M  181M  329M   36% /boot
tmpfs                   tmpfs     378M   12K  378M    1% /run/user/42
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /mnt
[root@192 opt]# mkfs.xfs -f /dev/sdc2
meta-data=/dev/sdc2              isize=512    agcount=4, agsize=1310016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5240064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@192 opt]# mount /dev/sdc2 /test
[root@192 opt]# cd /test/
[root@192 test]# ls

【4】使用 sfxrestore 恢复

[root@192 test]# xfsrestore -f /opt/dump_sdc2 /test

xfsrestore: using file dump (drive_simple) strategy
.........................中间省略......................................
xfsrestore: Restore Status: SUCCESS
[root@192 test]# ls
anaconda-ks.cfg            initial-setup-ks.cfg  公共  视频  文档  音乐
extundelete-0.2.4.tar.bz2  RECOVERED_FILES       模板  图片  下载  桌面
[root@192 test]# 

三.日志文件

1.日志的功能

用于记录系统、程序运行中发生的事件

通过与阅读日志,有助于诊断和解决系统故障

2.日志文件的分类

(1)内核及系统日志:由系统服务 rsyslog 统一进行管理,日志格式基本相似;主配置文件 /etc/rsyslog.conf

(2)用户日志:记录系统用户登录继推出系统的相关信息

(3)程序日志:由各种程序文件独立管理的日志文件吗,记录格式不统一

3.日志的保存位置: 默认 /var/log 目录下

 4.主要的日志文件

(1)内核及公共消息日志:
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

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

(3)系统引导日志:
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。

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

(5)用户登录日志:
/var/log/secure:记录用户认证相关的安全事件信息。
/var/log/lastlog:记录每个用户最近的登录事件
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件
/var/run/btmp:记录失败的、错误的登录尝试及验证事件

5.管理日志的系统服务-rsyslog

rsyslog还可以实现远程收集日志功能(收集多台主机的日志进行统一管理)

拓展:集中式收集管理日志方案 rsyslog 、shell/python脚本

ELK(elasticsearch+logstash+kibana)      Loki+promtail+grafana

6.日志的级别(数字等级越小,优先级越高,消息越重要)

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况。如系统崩溃
1ALERT警告必须马上采取措施解决的问题。如数据库被破坏
2CRIT严重比较严重的情况。如硬盘错误,可能会阻碍程序的部分功能
3ERR错误运行出现错误。不是非常紧急,尽快修复的
4WARNING提醒可能影响系统功能,需要提醒用户的重要事件。不是错误,如磁盘用了85%等
5NOTICE注意不会影响正常功能,但是需要注意的事件。无需处理
6INFO信息一般信息。正常的系统信息
7DEBUG调试程序或系统调试信息等。包含详细开发的信息,调试程序时使用

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

7.日志的一般格式

vim messages  日志文件的记录格式

时间标签:主机名:子系统名称:消息

1消息发出的日期和时间。
    2生成消息的计算机的名称。
        3发出消息的应用程序的名称。
                       4消息的具体内容
vim /etc/rsyslog.conf		#查看rsyslog.conf配置文件
                            规则配置格式:【设备、级别、动作】

*.info		#表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none	#表示某事件的信息不写到日志文件里(这里比如是邮件)

设备字段说明:
auth         用户认证时产生的日志                         authpriv   ssh、ftp等登录信息的验证信息
daemon   一些守护进程产生的日志                     ftp          FTP产生的日志
lpr           打印相关活动                                       mark      rsyslog服务内部的信息,时间标识
console   针对系统控制台的消息                        cron          系统执行定时任务产生的日志
kern        系统内核日志                                       local0~local7        自定义程序使用
mail         邮件日志                                              user          用户进程

news       网络新闻传输协议(nntp)产生的消息    syslog        系统日志

mark       rsyslog服务内部的信息,时间标识          
uucp       Unix-to-Unix Copy 两个unix之间的相关通信

8.用户日志分析

保存了用户登录、退出系统等相关信息

/var/log/secure:与用户验证相关的安全性事件(文本格式)

/var/log/lastlog:最近的用户登录事件(二进制格式)
/var/log/wtmp:用户登录、注销及系统开、关机事件(二进制格式)
/var/run/btmp:当前登录的每个用户的详细信息(二进制格式)

二进制格式无法直接进行查看,要进行二进制格式转换才能查看

分析工具:users 、who、w、last、lastb

last命令用于查询成功登录到系统的用户记录

lastb命令用于查询成功登录失败的用户记录

9.程序分析日志

由相应的应用程序独立进行管理

Web服务:/var/log/httpd/

access_log     //记录客户访问事件

error_log        //记录错误事件

代理服务:/var/log/squid/

access.log、cache.log

分析工具

文本查看、grep过滤、Webmin管理套件中查看

awk、sed等文本过滤、格式化编辑工具

Webalizer、Awstats等专用日志分析工具

10.journalctl 日志管理工具

journalctl是centos7上专有的日志管理工具,该工具是从messages这个文件里读取信息。
Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志);日志的配置文件是/etc/systemd/journald.conf

在centos7以前系统中,读取日志信息只能通过 vim 、more、less 等方式打开 /var/log/messages文件去查看信息

journalctl常用选项

#查看所有日志(默认情况下,只保存本次启动的日志)
journalctl
journalctl -r				#-r表示倒序,从尾部看(推荐)

#查看内核日志(不显示应用日志)
journalctl -k

#查看系统本次启动的日志	
journalctl -b  [-0]

#查看上一次启动的日志(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志)
journalctl -b -1

#显示尾部指定行数的日志
查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已
journalctl -n 20 [-f]

#查看某个服务的日志
journalctl -u nginx.service [-f]

#查看指定进程的日志
journalctl _PID=1

#查看指定用户的日志
journalctl _UID=0  --since today

journalctl -xe
# -x 是目录(catalog)的意思,在报错的信息下会,附加解决问题的网址
#-e  pager-end 从末尾开始看	

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/569150.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 系统的优缺点

CentOS (社区企业操作系统的缩写)是一个基于红帽企业 Linux (RHEL)的免费开源发行版, 旨在为服务器和工作站提供稳定、可靠和安全的平台。 不应将其与CentOS Stream 混淆,后者是即将发布的 RHEL 版本的上游开发平台。 CentOS Li…

第67天:APP攻防-Frida反证书抓包移动安全系统资产提取评估扫描

思维导图 案例一:内在-资产提取-AppinfoScanne AppinfoScanner 一款适用于以 HW 行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态 WEB …

机器学习之sklearn基础教程

ChatGPT Scikit-learn (简称sklearn) 是一个非常受欢迎的Python机器学习库。它包含了从数据预处理到训练模型的各种工具。下面是一个关于如何使用sklearn进行机器学习的基础教程。 1. 安装和导入sklearn库 首先,你需要安装sklearn库(如果你还没有安装的…

使用写入这类接口后,文件指针fp是否会偏移?

以fprintf为例: 在使用 fprintf 函数写入数据时,文件指针 fp 会自动进行偏移,以确保数据被写入到文件的正确位置。 每次调用 fprintf 函数都会将数据写入文件,并且文件指针会在写入完成后自动移动到写入的末尾,以便下…

56-FMC连接器电路设计

视频链接 FMC连接器电路设计01_哔哩哔哩_bilibili FMC连接器电路设计 1、FMC简介 1.1、FMC介绍 FMC(FPGA Mezzanine Card)是一个应用范围、适应环境范围和市场领域范围都很广的通用模块。FMC连接器连接了由FPGA提供的引脚和FMC子板的I/O接口。最新的…

NLP方面知识

NLP方面知识 一 基础1.Tokenizer1.1 分词粒度:1.2 大模型的分词粒度1.3 各路语言模型中的tokenizer 2.Embedding layer2.1 理解Embedding矩阵 一 基础 1.Tokenizer tokenizer总体上做三件事情: 分词。tokenizer将字符串分为一些sub-word token string&…

ISSCC论文详解:“闪电”数模混合存内计算,适应transformer和CNNs架构

本文聚焦存内计算前沿论文ISSCC 2024 34.3,总结归纳其创新点,并对与之相似的创新点方案进行归纳拓展。 一、文章基本信息 ISSCC 2024 34.4:《A 22nm 64kb Lightning-Like Hybrid Computing-in-Memory Macro with a Compressed Adder Tree a…

实验七 智能手机互联网程序设计(微信程序方向)实验报告

请编写一个用户登录界面&#xff0c;提示输入账号和密码进行登录&#xff0c;要求在输入后登陆框显示为绿色&#xff1b; 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; index.wxml <view class"content"> <view class"a…

Linux——界面和用户

本篇文章所写的都是基于centos 7 64位&#xff08;通过虚拟机运行&#xff09;。 一、Linux的界面 Linux操作系统提供了多种用户界面&#xff0c;主要分为图形用户界面&#xff08;GUI&#xff09;和命令行界面&#xff08;CLI&#xff09;。 1、图形用户界面(GUI)&#xff…

2024 年选择安全运营中心 (SOC) 工具指南

安全运营中心 (SOC) 是对抗网络威胁的前线。他们使用各种安全控制措施来监控、检测和快速响应任何网络威胁。这些控制措施对于确保信息系统全天候安全至关重要。 大型组织中的现代 SOC 与各种安全供应商合作&#xff0c;处理 75 到 100 种不同的工具。让我们探讨一下您可能遇到…

vue【vuex状态管理】

1&#xff1a;vuex是什么&#xff1a; vuex是一个状态管理工具&#xff0c;状态就是指的数据&#xff0c;可以将数据存放到vuex中以供其他组件使用时进行调用 2&#xff1a;应用场景&#xff1a; ①&#xff1a;像用户登录客户端&#xff0c;这个用户的数据需要在多个组件中…

天锐绿盾 | 文件资料透明加解密系统

"天锐绿盾 | 文件资料透明加解密系统" 是一款专为企业及各类组织机构设计的数据安全防护软件。它以“透明加解密”为核心技术&#xff0c;旨在对用户的重要文件资料进行实时、无缝的加密保护&#xff0c;确保数据在存储、传输和使用过程中的安全性&#xff0c;防止敏…

javascript(第三篇)原型、原型链、继承问题,使用 es5、es6实现继承,一网打尽所有面试题

没错这是一道【去哪儿】的面试题目&#xff0c;手写一个 es5 的继承&#xff0c;我又没有回答上来&#xff0c;很惭愧&#xff0c;我就只知道 es5 中可以使用原型链实现继承&#xff0c;但是代码一行也写不出来。 关于 js 的继承&#xff0c;是在面试中除了【 this 指针、命名提…

一文速览Llama 3及其微调:如何通过paper-review数据集微调Llama3 8B

前言 4.19日凌晨正准备睡觉时&#xff0c;突然审稿项目组的文弱同学说&#xff1a;Meta发布Llama 3系列大语言模型了 一查&#xff0c;还真是 本文以大模型开发者的视角&#xff0c;基于Meta官方博客的介绍&#xff1a;Introducing Meta Llama 3: The most capable openly a…

基于FPGA轻松玩转AI

启动人工智能应用从来没有像现在这样容易&#xff01;受益于像Xilinx Zynq UltraScale MPSoC 这样的FPGA&#xff0c;AI现在也可以离线使用或在边缘部署、使用.可用于开发和部署用于实时推理的机器学习应用&#xff0c;因此将AI集成到应用中变得轻而易举。图像检测或分类、模式…

Android Studio查看viewtree

前言&#xff1a;之前开发过程一直看的是手机上开发者选项中的显示布局边界&#xff0c;开关状态需要手动来回切换&#xff0c;今天偶然在Android Studio中弄出了布局树觉得挺方便的。

国产FTP文件传输服务器需要具备哪些关键特性?

国产FTP文件传输服务器是指根据中国国内信息技术创新&#xff08;信创&#xff09;的要求和标准&#xff0c;自主研发的文件传输服务器软件。这类软件旨在替代传统的FTP服务器&#xff0c;以更好地适应国产化和信息安全的需要。国产FTP文件传输服务器通常需要具备以下要求&…

【嵌入式Linux】STM32P1开发环境搭建

要进行嵌入式Linux开发&#xff0c;需要在Windows、Linux和嵌入式Linux3个系统之间来回跑&#xff0c;需要使用多个软件工具。经过了4小时的安装&#xff08;包括下载时间&#xff09;&#xff0c;我怕以后会忘记&#xff0c;本着互利互助的原则&#xff0c;我打算把这些步骤详…

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测 目录 分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.RIME-BP霜冰优化BP神经网络多特征分类预测&#xff08;Matlab实现完整源码和数据&a…

WEB攻防-ASP中间件IIS 短文件名探针安全漏洞

IIS短文件名探针安全漏洞是一个与IIS&#xff08;Internet Information Services&#xff09;服务相关的安全问题。该漏洞主要是由于HTTP请求中使用了旧DOS 8.3名称约定&#xff08;SFN&#xff09;的代字符&#xff08;〜&#xff09;波浪号&#xff0c;这使得远程攻击者有可能…