Linux基础-----Linux系统的文件系统与日志文件

目录

一.inode与block概述

二.indoe的内容

三.inode的号码

四.inode的大小

五.inode的特殊作用

六.恢复误删除的xfs文件

七.日志文件的分类与位置

八.内核及系统日志

九.用户日志

十.程序日志

十一.日志管理策略


一.inode与block概述

  • Linux系统文件中有三个部分:文件名,元信息,数据。
  • 通常元信息存放在inode(索引节点)中,数据则存放在block(块)中。
  • 磁盘的最小存储单位叫做扇区,每个扇区存储512个字节,而块有多个扇区组成,最常见的是4KB,即8个连续的扇区组成
  • 一个文件必须占用一个inode,且至少占用一个block
  • inode包含文件的元信息,其中有:文件的字节数,文件拥有者的UserID,文件的GroupID,文件的权限,文件的时间戳
  • 使用stat命令,查看某个文件的inode信息,实例如下:
[root@localhost ~]# ls /opt
a.txt  rh
[root@localhost ~]# cd /opt
[root@localhost opt]# stat a.txt
  文件:"a.txt"
  大小:12        	块:8          IO 块:4096   普通文件
设备:802h/2050d	Inode:18238781    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-11-17 13:13:15.972866623 +0800
最近更改:2019-11-17 13:13:15.973866605 +0800
最近改动:2019-11-17 13:13:15.973866605 +0800
创建时间:-
  • 也可以用ls -i查看文件或者目录的节点号,示例如下
[root@localhost opt]# ls -i
18238781 a.txt   1476590 rh
[root@localhost opt]# 
  • Linux系统文件的三个主要时间属性:ctime(最后一次改变文件或目录属性的时间);atime(最后一次访问文件或目录的时间);mtime(最后一次修改文件或目录内容的时间)

二.indoe的内容

  • 目录文件的结构:文件名+inode号码,称为目录项
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件
  • Linux系统内部使用inode号码来识别文件
  • 对于用户来说,文件名只是inode号码便于识别的别称

三.inode的号码

  • 用户通过文件名打开文件时,系统内部的过程:1,系统找到这个文件名对应的inode号码;2,通过inode号码获取inode信息;3,根据inode信息,找到文件数据所在的block,读取数据。

  • 可以使用ls -i + 文件名或者stat + 文件名,查看inode号码和inode详细信息

四.inode的大小

  • 每个inode的大小一般是128字节或者256字节
  • 格式化系统时确定inode的总数
  • 使用df -i 命令可以查看每个硬盘分区的inode总数和已经使用的数量,如下:
[root@192 ~]# df -i
文件系统         Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda2      5242880  125329 5117551       3% /
devtmpfs        121277     392  120885       1% /dev
tmpfs           124962       1  124961       1% /dev/shm
tmpfs           124962     570  124392       1% /run
tmpfs           124962      16  124946       1% /sys/fs/cgroup
/dev/sda3      2097152     154 2096998       1% /home
/dev/sda1      2096640     327 2096313       1% /boot
tmpfs           124962       8  124954       1% /run/user/42
tmpfs           124962       1  124961       1% /run/user/0
[root@192 ~]# 

五.inode的特殊作用

  • 由于inode号码与文件分离,导致一些Linux系统具有以下现象
  • 当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
  • 移动或者重命名文件时,只改变文件名,不影响inode号码
  • 打开一个文件后,系统通过inode号码来识别该文件,不在考虑文件名

六.恢复误删除的xfs文件

  • 当我们删除文件时,并没有清楚inode节点和block数据,只是在这个文件的父目录里面的block中,删除这个文件的名字
  • Linux是通过Link的数量来控制文件的删除的,只有当一个文件不存在任何Link的时候,这个文件才会被删除
  • 恢复xfs类型的文件步骤
1.确保系统有xfsdump和xfsrestore这两个工具
2.创建一个新的分区,格式化且挂载(/dev/sdb1,挂载点为/mnt)
3.在挂载点上,写入数据
4.使用xfsdump工具进行备份
xfsdump -f /opt/xfs_dump  /dev/sdb1   >  xfs_dump  >  sdb1
5.删除挂载点下面的数据
rm -rf  /mnt/*
6.恢复数据
xfsrestore -f /opt/xfs_dump /mnt
  • 实例如下

创建分区,且格式化,挂载到/mnt下

[root@192 ~]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     8388607     4193280   83  Linux
/dev/sda2         8388608    29360127    10485760   83  Linux
/dev/sda3        29360128    37748735     4194304   83  Linux
/dev/sda4        37748736    41943039     2097152    5  Extended
/dev/sda5        37750784    41943039     2096128   82  Linux swap / Solaris

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux
[root@192 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, 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 ~]# mount /dev/sdb1 /mnt

在挂载点处创建数据文件

[root@192 ~]# cd /mnt
[root@192 mnt]# echo "hello world" > a.txt
[root@192 mnt]# ls
a.txt

备份数据文件

[root@192 ~]# xfsdump -f /opt/xfs_dump /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
 -> xfs_dump
session label entered: "xfs_dump"

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of 192.168.43.133:/mnt
xfsdump: dump date: Sun Nov 17 16:28:24 2019
xfsdump: session id: c64544a5-e1cb-4277-a336-dde88a9b7b32
xfsdump: session label: "xfs_dump"
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: 25216 bytes
xfsdump: /var/lib/xfsdump/inventory created

 ============================= media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1
media label entered: "sdb1"

 --------------------------------- end dialog ---------------------------------

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 22208 bytes
xfsdump: dump size (non-dir files) : 544 bytes
xfsdump: dump complete: 14 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/xfs_dump OK (success)
xfsdump: Dump Status: SUCCESS

删除挂载点下的数据文件

[root@192 ~]# rm -rf /mnt/*
[root@192 ~]# ls /mnt

恢复挂载点下的数据

[root@192 ~]# xfsrestore -f /opt/xfs_dump /mnt
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: 192.168.43.133
xfsrestore: mount point: /mnt
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Sun Nov 17 16:28:24 2019
xfsrestore: level: 0
xfsrestore: session label: "xfs_dump"
xfsrestore: media label: "sdb1"
xfsrestore: file system id: dece33b5-626c-4497-a90d-1fe920b96d58
xfsrestore: session id: c64544a5-e1cb-4277-a336-dde88a9b7b32
xfsrestore: media id: 1da1e793-1cde-4e67-8331-d0a60ba384a1
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 1 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /opt/xfs_dump OK (success)
xfsrestore: Restore Status: SUCCESS
[root@192 ~]# ls /mnt
a.txt

注:只能备份已挂载的文件系统,必须使用root权限才能操作,只能备份XFS文件系统,备份后的数据只能让xfsrestore恢复,不能备份两个具有相同的UUID的文件系统

七.日志文件的分类与位置

  • 日志用于记录系统、程序运行中发生的各种事件,通过阅读日志,有助于诊断和解决系统故障
  • 日志文件分为:内核及系统日志(由系统syslog统一进行管理,日志格式基本相似);用户日志(记录系统用户登录及退出系统的相关信息);程序日志(由各种应用程序独立管理的日志文件,记录格式不统一)
  • 日志文件保存的位置:/var/log目录下
  • 内核及公共消息日志:/var/log/messages
  • 计划任务日志:/var/log/cron
  • 系统引导日志:/var/log/dmesg
  • 邮件系统日志:/var/log/maillog
  • 用户登陆的日志:/var/log/lastlog;/var/log/secure;/var/log/wtmp;/var/run/btmp

八.内核及系统日志

  • 由系统服务rsyslogd统一管理
  • 主要程序:/sbin/rsyslogd
  • 配置文件:/etc/rsyslog.conf
  • 日志消息的级别

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

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

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

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

4 WARNING (提醒):可能会影响系统功能的事件

5 NOTICE (注意):不会影响系统但值得注意

6 INFO (信息):一般信息

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

  • 日志消息一般包括四个字段:时间标签,主机名,子系统名,消息
[root@192 ~]# tail -1 /var/log/messages
Nov 17 16:53:14 localhost chronyd[642]: Source 193.182.111.14 replaced with 162.159.200.1
[root@192 ~]# 

九.用户日志

  • /var/log/lastlog:最近的用户登录事件
  • /var/log/wtmp:用户登录、注销及系统开、关机事件
  • /var/run/utmp:当前登录的每个用户的详细信息
  • /var/log/secure:与用户验证相关的安全性事件
  • 分析相关工具:last查看登录成功的用户;lastb查看登录失败的用户
[root@192 ~]# last
root     pts/0        192.168.43.1     Sun Nov 17 16:23   still logged in   
reboot   system boot  3.10.0-693.el7.x Sun Nov 17 16:21 - 17:02  (00:41)    
root     pts/0        192.168.43.1     Sun Nov 17 15:50 - down   (00:30)    
reboot   system boot  3.10.0-693.el7.x Sun Nov 17 15:49 - 16:21  (00:32)    
root     pts/0        192.168.43.1     Sun Nov 17 12:59 - crash  (02:49)    
reboot   system boot  3.10.0-693.el7.x Sun Nov 17 12:21 - 16:21  (03:59)    
reboot   system boot  3.10.0-693.el7.x Fri Nov 15 17:19 - 16:21 (1+23:01)   
root     pts/0        192.168.43.1     Fri Nov 15 11:20 - crash  (05:59)    
root     :0           :0               Mon Nov 11 21:53 - crash (3+19:26)   
reboot   system boot  3.10.0-693.el7.x Mon Nov 11 21:53 - 16:21 (5+18:28)   
root     :0           :0               Mon Nov 11 20:41 - crash  (01:11)    
root     pts/0        192.168.43.1     Mon Nov 11 19:39 - crash  (02:13)    
reboot   system boot  3.10.0-693.el7.x Mon Nov 11 19:39 - 16:21 (5+20:41)   
root     pts/0        192.168.43.1     Sun Nov 10 18:30 - down   (05:16)    
reboot   system boot  3.10.0-693.el7.x Sun Nov 10 18:18 - 23:47  (05:28)    
root     pts/0        192.168.43.1     Sat Nov  9 16:55 - 17:34  (00:38)    
root     pts/0        192.168.43.1     Sat Nov  9 16:41 - 16:55  (00:13)    
root     pts/0        192.168.43.1     Sat Nov  9 16:41 - 16:41  (00:00)    
zhangsan pts/0        :0               Sat Nov  9 16:41 - 16:41  (00:00)    
zhangsan :0           :0               Sat Nov  9 16:41 - down   (00:53)    
reboot   system boot  3.10.0-693.el7.x Sat Nov  9 16:39 - 17:34  (00:55)    

wtmp begins Sat Nov  9 16:39:24 2019
[root@192 ~]# lastb
zhangsan :0           :0               Sun Nov 17 17:01 - 17:01  (00:00)    
zhangsan :0           :0               Sun Nov 17 17:01 - 17:01  (00:00)    

btmp begins Sun Nov 17 17:01:33 2019
[root@192 ~]# 

十.程序日志

  • web服务:/var/log/httpd/(access_log、error_log)
  • 代理服务:/var/log/squid/(access.log、cache.log)
  • FTP服务:/var/log/xferlog
  • 分析工具:文本查看、grep过滤检索、Webmin管理套件中查看

十一.日志管理策略

  • 及时作好备份和归档
  • 延长日志保存期限
  • 控制日志访问权限
  • 集中管理日志

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值