精华内容
下载资源
问答
  • 文章目录Linux文件系统与日志文件inode和block概述目录文件的结构查看inode号码的方法inode的大小链接文件硬链接软链接恢复误删除的文件恢复XFS类型的文件恢复EXT类型的文件日志文件日志的功能日志消息的级别用户...

    Linux文件系统与日志文件

    inode和block概述

    文件数据包括元信息与实际数据
    文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
    block(块)
    连续的八个扇区组成一个block
    是文件存储的最小单位
    inode(索引节点)
    中文译名为“索引节点”,也叫i节点
    用于存储文件元信息

    在这里插入图片描述

    inode包含文件的元信息
    文件的字节数
    文件拥有者的User ID(不包含文件名)
    文件的Group ID
    文件的读写执行权限
    文件的时间戳
    ……
    用stat命令可以查看某个文件的inode信息

    [root@localhost opt]# touch aa.txt
    [root@localhost opt]# stat aa.txt
      文件:"aa.txt"
      大小:0         	块:0          IO 块:4096   普通空文件
    设备:fd00h/64768d	Inode:33567187    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:usr_t:s0
    最近访问:2020-07-02 03:01:28.719405830 +0800
    最近更改:2020-07-02 03:01:28.719405830 +0800
    最近改动:2020-07-02 03:01:28.719405830 +0800
    创建时间:-
    

    ##Linux系统文件三个主要的时间属性
    ctime(change time)
    最后一次改变文件或目录(属性)的时间
    atime(access time)
    最后一次访问文件或目录的时间
    mtime(modify time)
    最后一次修改文件或目录(内容)的时间

    目录文件的结构

    目录也是一种文件
    目录文件的结构
    在这里插入图片描述
    每个inode都有一个号码,操作系统用inode号码来识别不同的文件
    Linux系统内部不适用文件名,而使用inode号码来识别文件
    对于用户,文件名只是inode号码便于识别的别称

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

    查看inode号码的方法

    ls -i命令:查看文件名对应的inode号码

    [root@localhost opt]# ls -i aa.txt
    33567187 aa.txt
    [root@localhost opt]# stat aa.txt
      文件:"aa.txt"
      大小:0         	块:0          IO 块:4096   普通空文件
    设备:fd00h/64768d	Inode:33567187    硬链接:1
    权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
    环境:unconfined_u:object_r:usr_t:s0
    最近访问:2020-07-02 03:01:28.719405830 +0800
    最近更改:2020-07-02 03:01:28.719405830 +0800
    最近改动:2020-07-02 03:01:28.719405830 +0800
    创建时间:-
    

    硬盘分区后的结构
    在这里插入图片描述
    在这里插入图片描述

    inode的大小

    inode也会消耗硬盘空间
    每个inode的大小
    一般是128字节或256字节

    格式化文件系统时确定inode的总数
    使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
    在这里插入图片描述
    inode的特殊作用
    由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
    当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
    移动或重命名文件时,之改变文件名,不影响inode号码
    打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

    链接文件

    为文件或目录建立链接文件
    链接文件分类

    软链接(又称符号链接)硬链接
    删除原始文件后失效仍旧可用
    使用范围适用于文件或目录只可用于文件
    保存位置与原始文件可以位于不同的文件系统中必须与原始文件在同一个文件系统(如一个Linux分区)内

    硬链接

    一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
    但是Linux系统允许,多个文件名指向同一个inode号码。这表示可以用不同的文件名来访问同样的内容
    ln命令可以创建硬链接,命令基本格式
    ln 源文件 目标
    不能对目录做硬链接
    运行此命令后,源文件和目标文件的inode号码相同,都指向同一个inode。
    inode信息中的“链接数”此时就会增加1
    当一个文件拥有多个硬链接时,对文件内容修改,会影响到所有文件名,但删除一个文件名,不会影响另一个文件名的访问,删除一个文件名,就会使得inode信息中的“链接数”减少1

    软链接

    软链接就是再创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名
    软链接的创建命令的基本格式为:
    ln [-s] 源文件或目录… 链接文件或目标位置

    恢复误删除的文件

    恢复XFS类型的文件

    xfsdump命令格式
    xfsdump -f 备份存放位置 要备份的路径或者设备文件

    xfsdump备份级别(默认为0)
    0:完全备份
    1-9:增量备份

    xfsdump常用选项:-f,-L,-M,-s

    xfsrestore -f 恢复文件的位置 存放恢复后文件的位置

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

    恢复EXT类型的文件

    安装extundelete软件包

    [root@localhost ~]# yum -y install e2fsprogs*
    [root@localhost ~]# yum -y install wget
    [root@localhost ~]# cd /opt
    [root@localhost opt]# wget http://nchc.dl.sourceforge.net/project/extundel/extundelete-0.2.4.tar.bz2
    [root@localhost opt]# ls
    data  extundelete-0.2.4.tar.bz2
    

    把一块磁盘格式化成ext4格式

    [root@localhost ~]# mkfs.ext3  /dev/sdb1 
    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: 完成   
    
    [root@localhost opt]# mkdir data   
    [root@localhost opt]# mount /dev/sdb1 /opt/data
    
    [root@localhost opt]# cd data/
    [root@localhost data]# ls
    lost+found
    [root@localhost data]# touch aa bb cc dd 
    [root@localhost data]# ls
    aa  bb  cc  dd  lost+found
    
    [root@localhost data]# rm -rf aa bb
    [root@localhost data]# ls
    cc  dd  lost+found
    
    [root@localhost data]# cd ~
    [root@localhost ~]# umount /opt/data/
    
    [root@localhost ~]# extundelete /dev/sdb1 --restore-all	
    NOTICE: Extended attributes are not restored.
    Loading filesystem metadata ... 160 groups loaded.
    Loading journal descriptors ... 28 descriptors loaded.
    Searching for recoverable inodes in directory / ... 
    0 recoverable inodes found.		
    Looking through the directory structure for deleted files ... 
    0 recoverable inodes still lost.
    No files were undeleted.
    [root@localhost opt]# mount /dev/sdb1 /opt/data
    [root@localhost ~]# cd RECOVERED_FILES/	
    [root@localhost RECOVERED_FILES]# ls		
    aa  cc
    [root@localhost RECOVERED_FILES]# cp a /opt 		
    [root@localhost RECOVERED_FILES]# ls /opt
    aa  bb  cc  dd  lost+found
    

    日志文件

    日志的功能

    用于记录系统、程序运行中发生的各种事件
    通过阅读日志,有助于诊断和解决系统故障
    日志文件的分类
    内核及系统的分类

    • 内核及系统日志
      由系统服务rsyslog统一进行管理,日志格式基本相似
    • 用户日志
      记录系统用户登录退出系统的相关信息
    • 程序日志
      由各种应用程序独立管理的日志文件,记录格式不统一

    日志文件保存位置
    默认位于:/var/log目录下

    主要日志文件介绍

    内核及公共消息日志/var/log/messages
    计划任务日志/var/log/cron
    系统引导日志/var/log/dmesg
    邮件系统日志/var/log/maillog
    用户登录日志/var/log/lastlog、/var/log/secure、/var/log/wtmp、/var/log/btmp

    内核及系统日志
    由系统服务rsyslogd统一管理
    软件包:rsyslog-7.4.7-16.el7.x86_64
    主要程序:/sbin/rsyslogd
    配置文件:/etc/rsyslog.conf

    在这里插入图片描述

    日志消息的级别

    受rsyslogd服务管理的日志文件都是Linux系统中最重要的日志文件,它们记录了Linux系统中内核,用户认证,邮件,计划任务等最基本的系统消息
    在Linux内核中,根据日志消息的重要程度不同,将其分为不同的优先级(数字等级越小,优先级越高,消息越重要)

    级别解释
    0 EMERG(紧急)会导致主机系统不可用的情况
    1 ALERT(警告)必须马上采取措施解决的问题
    2 CRIT(严重)比较严重的情况(某些功能不可用)
    3 ERR(错误)运行出现错误
    4 WARNING(提醒)可能会影响系统功能的事件
    5 NOTICE(注意)不会影响系统但值得注意
    6 INFO(信息)一般信息
    7 DEBUG(调试)程序或系统调试信息等(做维护的时候可能会用到)

    内核及大多数系统消息都被记录到公共日志文件/var/log/messages中,而其他一些程序消息被记录到各自独立的日志文件中
    日志消息还可以记录到特定的存储设备中,或者直接发送给指定用户

    用户日志

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

    /var/log/lastlog:最近的用户登录事件
    
    /var/log/wtmp:用户登录,注销及系统开,关机事件
    
    /var/log/utmp:当前登录的每个用户的详细信息
    
    /var/log/secure:与用户验证相关的安全性事件
    

    程序日志分析

    由相应的程序独立进行管理
    web服务:/var/log/httpd/

    • access_log、error_log
      代理服务:/var/log/squid/
    • access.log 、cache.log
      FTP服务:/var/log/xferlog

    分析工具

    • 文本查看、grep过滤检索、webmin管理套件中查看
    • awk、sed等文本过滤,格式化编辑工具
    • webalizer、awstats等专用日志分析工具

    日志管理策略

    及时做好备份和归档
    延长日志保存期限
    控制日志访问权限

    • 日志中可能会包含各类敏感信息,如账户、口令等
      集中管理日志
    • 将服务器的日志文件发到统一的日志文件服务器
    • 便于日志信息的统一收集,整理和分析
    • 杜绝日志信息的意外丢失、恶意篡改或删除
    展开全文
  • Linux删除过期日志文件

    千次阅读 2021-02-23 18:15:37
    理想状态下是7天前的日志和图片都被删掉,目前这篇文章记录删除本地Linux服务器上的日志和图片。 我想到4种实现方式 1 - Java定时任务直接删除本地指定文件,用过滤器过滤出7天的文件,直接用删除文件,这个方法最...

    Linux下删除过期日志文件

    简单记录一下工作中遇到的需求问题,写点博客记录一下自己的成长历程。

    目前的项目中有需求,需要去定期处理掉服务器上的过期日志文件还有服务器本地存储的过期图片。

    理想状态下是7天前的日志和图片都被删掉,目前这篇文章记录删除本地Linux服务器上的日志和图片。

    我想到4种实现方式

    1 - Java定时任务直接删除本地指定文件,用过滤器过滤出7天的文件,直接用删除文件,这个方法最直接,但是过滤的逻辑和过程就复杂了。

    2 - Linux编写删除7天前的日志和图片,这个仅需两行代码即可,但是定时任务要添加到Linux系统中去,需要root权限

    3 - Linux编写删除脚本,Java创建定时任务去执行这个脚本,过期时间定时时间都可以随意变更比较灵活,而且维护起来复杂度低。

    4 - Java中把Linux脚本编写成字符串格式,用Java定时任务去执行这个字符串生成的脚本。最简洁,最方便

    4种方法我都尝试了,最终还是选择了第二种,又快还简单。
    当然我也把第3种方法写进去了.希望对看到文章的你有所帮助。

    1. Linux脚本编写

    创建shell脚本 touch +文件绝对路径

    touch /mnt/data/opt/data/cow_spray_control_java/48b02d1854a9/shell/delete.sh
    

    分配可执行权限 chmod +x +文件绝对路径

    chmod +x /mnt/data/opt/data/cow_spray_control_java/48b02d1854a9/shell/delete.sh
    

    进入目录并编辑脚本文件

    cd /mnt/data/opt/data/cow_spray_control_java/48b02d1854a9/shell
    
    vim delete.sh
    

    Linux自动删除n天前日志及实例命令

    find /opt/log/ -mtime +7 -name "*.log" -exec rm -rf {} \;
    

    find :Linux的查找命令,用户查找指定条件的文件;

    /opt/log/ : 想要清理的日志存放目录;

    -mtime +7 : 查找7天前的文件,个数字代表天数;

    “*.log” :希望查找的文件类型,“ .jpg” 表示茶桌所有图片,举一反三 “ *+ 文件后缀”代表这类文件

    -exec :固定写法;

    rm -rf:强制删除文件,新手谨慎使用,容易删光跑路;

    {} ; :固定写法 一对大括号{}+空格+反斜杠\ + 分号;

    加入crontab(如果不用Java执行,可以直接Linux定时任务执行)
    crontab -e
    59 23 * * * /bin/sh /opt/log/logs_delete.sh
    

    这个表示为,每天23点59分执行这个脚本。

    2. Java定时任务编写

    shellPath为shell脚本文件的绝对路径

     @Scheduled(fixedDelay = 24 * 60 * 60 * 1000)
        public void run() {
    
            // 把要执行的脚本文件路径写成字符串格式传入exec执行脚本,注意linux下文件目录/使用反斜杠
            String[] scriptPath = new String[] {"/bin/sh", shellPath};
            try {
                LOGGER.info("定时清理任务开始");
                // 执行脚本
                Runtime.getRuntime().exec(scriptPath);
            } catch (IOException e) {
                LOGGER.error("定时清除脚本执行异常", e);
            }
            LOGGER.info("定时清理任务结束");
        }
    
    展开全文
  • Linux服务器上有程序持续产生临时文件供其它程序使用,但这些文件只需保留一段时间,后续要经常进行删除过期文件,人工删除一是输出时间长,二是多个目录删除繁琐 2.解决方案 使用Linux自带的删除文件命令进行模糊...

    1.问题

    Linux服务器上有程序持续产生临时文件供其它程序使用,但这些文件只需保留一段时间,后续要经常进行删除过期文件,人工删除一是输出时间长,二是多个目录删除繁琐

    2.解决方案

    使用Linux自带的删除文件命令进行模糊匹配文件名称+设置定时机制

    3.实现步骤

    • 删除目录(ome/linux1/newServer/S_DBSERVER_FILE/cdndata)下前30天的文件

    • 该目录下的文件是以zip或者sql结尾的,那么我们可以这样写删除命令
    find /home/linux1/newServer/S_DBSERVER_FILE/cdndata -type f -name '*.sql' -or -name '*.zip' -mtime +30 -exec rm -f {} \;
    • 上面命令的解释:find 要查找的文件目录 -type 文件类型(-f)  -name 文件名称(可用*通配) -or -name 多个文件名称匹配 -mtime 前30天文件 -exec 执行 -rm 删除 -f 强制 {} \;

    •  可以看到现在留下的文件都是前30天以内的,我们可以把这个命令写成脚本,后续加到定时任务中,自动执行
    vi rmPassDateFile.sh
    • 把刚刚执行的命令加在该文件中

    • 给脚本赋予执行权限
    chmod +x rmPassDateFile.sh

     

    • 将该脚本加到定时任务中(root用户)
    crontab -e
    • 每天00:00执行
    0 0 * * * /home/linux1/newServer/S_DBSERVER_FILE/cdndata/rmPassDateFile.sh >> /delete.log
    • 定时任务命令解释:前五个占位符是时间(分 时 日 月 周),*号代表每次,后面接脚本路径 ,再后面是将脚本中输出的日志写在文件中,我们可以再脚本中加入时间戳,后续可以查看执行脚本的记录
    • 重启定时服务
    service crond restart

     

    展开全文
  • 本章目录一、inode和block二、软链接和硬链接三、分析日志文件四、实验部分实验环境实验任务实验内容与步骤恢复ext3文件类型恢复误删除的xfs类型文件 一、inode和block 1.概述 在Linux操作系统中,文件数据包括实际...

    一、inode和block

    1.概述
      在Linux操作系统中,文件数据包括实际内容和属性(元信息),属性包括文件权限和文件所有者。
      文件存储在硬盘上,硬盘最小存储单元是“扇区”,每个扇区存储512字节。
      操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取8个扇区,即一次性读取一个“块”(block),块是文件存取的最小单位。
      连续的八个扇区组成一个block,“块”的大小,容量4KB。
      文件数据是存储在块中的,而文件的相关属性就保存在inode中,称为索引节点或i节点,一个文件占有一个i节点。
    在这里插入图片描述
    2.inode节点信息
      inode包含很多的文件元信息,包括文件的字节数、文件拥有者UserID、文件的GroupID、文件的rwx权限(读、写、执行)、文件时间戳。
      使用stat命令可以查看某个文件的inode信息

    [root@localhost ~]# touch df.log
    [root@localhost ~]# stat df.log
    [root@localhost ~]# mv df.log df.dy        ##改个文件名,看看那个时间会改变
    [root@localhost ~]# stat df.dy
    最近改动为改属性的时间
    最近更改为改内容的时间
    

    在这里插入图片描述
      Linux系统文件有三个主要的时间属性,分别是atime(access time), mtime(modify time),ctime(change time)对应中文显示为最近访问时间、最近更改时间和最近改动时间。

    • atime(access time)是最后一次访问文件或目录的时间;
    • mtime(modify time)是最后一次修改文件或目录(内容)的时间
    • ctime(change time) 是最后一次改变文件或目录(属性)的时间,例如执行 chmod, chown 等命令;

    3.inode号
      当用户打开文件,系统内部分成三步:
      (1)系统找到文件名的inode号码
      (2)通过inode号码,获取inode信息
      (3)根据inode信息,找到文件所在的block,并读取数据
      ls -i 命令可以查看文件对应的inode号码;state命令会显示更详细的信息,也是可以从中查到inode号的。
      ls -i df.dy ##查看inode号
    在这里插入图片描述
    4.inode的大小
    使用命令df -i可以查看每个硬盘的inode节点数和已使用情况
    df -i
    在这里插入图片描述
    由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象:
    (1)当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件;
    (2)移动或者重命名文件时,只改变文件名,不影响inode号码;
    (3)打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名。
    当数据更新时,只要将文件指向新的节点号就可以了。

    二、软链接和硬链接

    1.软链接和硬链接
      因为在系统中很多不同的目录文件位置会需要用到相同的文件,如果在每个需要的地方都存放一份文件的话,那样十分占据磁盘空间,在需要使用文件的地方创建链接可以节约资源,又可以使用文件。
      软链接是快速链接到目标文件或者目录,硬链接产生新的文件名且所以链接产生的文件名和源文件都是指向相同inode节点的。
    命令格式:ln 源文件 目标

    软链接硬链接
    删除原始文件后失效仍旧可用
    使用范围适用文件或目录只可用于文件
    保存位置与原始文件可以位于不同的文件系统中必须与原始文件在同一个文件系统内如一个Linux分区

    创建硬链接
    touch a b
    ln a c ##为源文件a创建硬链接
    ls ##可看到c已存在
    state c
    state a ##看两个文件的i节点号是相同的
    在这里插入图片描述
    创建软链接
    ln -s a d
    ll ##可查看d指向a
    state a
    state d ##查看inode,d也是指到a
    在这里插入图片描述
    2.关于ll命令输出结果中字段信息
    在这里插入图片描述
    图中红框出来的数字,对于目录来说,这个数字是表示这个目录下的第一个子目录的数量,
    比如test05这个目录,显示的是2,表示他目录下的.和…来个目录,其他的都不是目录。
    在这里插入图片描述
    对应其他文件来说,表示链接数,对于软链接一般为1,对于硬链接会显示的数量大于1(数字表示指向同个i节点号的文件数量,硬链接i节点号都相同)。

    三、分析日志文件

    日志文件是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的“日记”。不同日志文件记录不同类型的信息。日志文件对排除故障有很大的帮助。
    1.日志数据类型
    (1)日志类型
    内核及系统日志:由系统服务rsyslog统一进行管理,日志格式基本相似。
    用户日志:记录系统用户登录及退出系统的相关信息,包括用户名,登录的终端,登录时间,来源主机,正在使用的进程操作等。
    程序日志:由各种应用程序独立管理的日志文件,记录格式不统一,程序安装后不会生成日志文件,只有在启动的时候才会生成日志文件,没有访问它,日志文件就是空的。
    (2)常见的日志文件
    /var/log/messages:记录Linux内核消息和各种应用程序的公共日志信息,包括启动,I/O错误,网络错误,程序故障等,对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的时间记录信息。
    /var/log/cron:记录crond计划任务产生的事件信息。
    /var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
    /var/log/maillog:记录进入或发出系统的电子邮件活动。
    /var/log/lastlog:记录每个用户最近的登录时间。
    /var/log/secure:记录用户认证相关的安全事件信息。
    /var/log/wtmp:记录每个用户登录,注销及系统启动和停机事件。
    /var/log/btmp:记录失败的,错误的登录尝试及验证事件。
    2.日志文件分析
    对系统日志进行分析可以查找关键信息、对系统服务进行调试和可以判断出故障原因。
    (1)内核和系统日志
    内核和系统日志由rsyslog服务所使用的/etc/rsyslog.conf配置文件。
    grep -v “^$” /etc/rsyslog.conf ##过滤空行
    在这里插入图片描述
    此文件中包含Linux文件中最主要的日志文件,他们记录了Linux系统中内核、用户认证、计划任务等最基本的系统消息。在Linux内核中,根据日志消息的重要程度,可分为不同的优先级别(数字越小优先级越高,越重要),类型如下:
    0 EMERG(紧急) 会导致主机系统不可用的情况
    1 ALERT(警告) 必须马上采取措施解决的问题
    2 CRIT(严重) 比较严重的情况(某些功能不可用)
    3 ERR(错误) 运行出现错误
    4 WARNING(提醒) 可能会影响系统功能的事件
    5 NOTICE(注意) 不会影响系统但值得注意
    6 INFO(信息) 一般信息
    7 DEBUG(调试) 程序或系统调试信息等(做维护的时候可能会用到)
    在/var/log/messages,会有大多数的系统日志消息。
    more /etc/messages ##查看日志文件,这里面的数据十分多
    在这里插入图片描述
    我们可以看到日志文件中的个字段,具体含义如下
    时间标签:Jun 16 17:18:02:消息发出的日期和时间
    主机名:localhost:生成消息的计算机的名称
    子系统名称:kernel:发出消息的应用程序的名称
    消息:Initializing cgroup subsys :消息的具体内容
    (2)用户日志
    几种用户日志如下:
    /var/log/lastlog:最近的用户登录事件
    /var/log/wtmp:用户登录,注销及系统开,关机事件
    /var/log/utmp:当前登录的每个用户的详细信息
    /var/log/secure:与用户验证相关的安全性事件
    但这些文件都是二进制文件,不能直接查看,我们一般借助users、who、w、last和lastb等命令来获取日志信息。
    1)查询当前登录的用户情况—users、who、w命令
    user命令只简单的输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数
    user ##root用户登录5个会话
    在这里插入图片描述
    who命令用户报告当前登录到系统中的每个用户的信息,使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理,who命令的默认输出包括用户名,终端类型,登录日期及远程主机
    who
    在这里插入图片描述
    w命令用于显示当前系统中的每个用户及其所运行的进程信息,比users,who命令的输出内容要更加丰富一些
    在这里插入图片描述
    2)查询用户登录的历史命令记录–last、lastb命令
    last命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面
    通过last命令可以及时掌握Linux主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵
    last
    在这里插入图片描述
    lastb命令用于查询登录失败的用户记录,如登录的用户名错误,密码不正确等情况都会记录在案。
    登录失败的情况属于安全事件,因为这表示可能有人在尝试猜出你的密码
    除了使用lastb命令查看以外,还可以直接从安全日志文件/var/log/secure中获得相关信息
    自己切换用户尝试几次输错密码,就可以在日志文件中查看到了
    lastb
    在这里插入图片描述
    tail /var/log/messages
    在这里插入图片描述
    这样可以看出root用户用失败的登录
    3.程序日志
    在Linux系统中,还有相当一部分应用程序并没有使用rsyslog服务来管理日志,而是由程序自己维护日志记录。如,httpd网站服务程序使用两个日志文件access_log和error_log,分别记录客户访问记录、错误事件。
    1)分析工具
    文本查看,grep过滤检索,webmin管理套件中查看awk,sed等文本过滤,格式化编辑工具webalizer,awstats等专用日志分析工具
    2)日志管理策略
    及时做好备份和归档
    延长日志保存期限
    控制日志访问权限
    日志中可能会包含各类敏感信息,如账户,口令等
    几种管理日志
    将服务器的日志文件发到统一的日志文件服务器便于日志信息的统一收集,整理和分析

    四、实验部分

    实验环境

    centos 7.6

    实验任务

    恢复删除的文件

    实验内容与步骤

    恢复ext3文件类型

    1.恢复误删除的ext3文件
    1)编译安装 extundelete
    在编译安装 extundelete 之前需要先安装两个依赖包 e2fsprogs-libs 和 e2fsprogs-devel,
    这两个包在系统安装光盘的/Package 目录下就有,使用 rpm 或 yum 命令将其安装。
    e2fsprogs-devel 安装依赖于 libcom_err-devel 包。 安装完依赖包之后,
    即可将提前上传的 extundelete 软件包解压、配置、编译、安装

    yum -y install e2fsprogs-devel e2fsprogs-libs
    yum -y install wget
    yum -y install gcc automake autoconf libtool make
    yum install gcc gcc-c++
    yum -y install bzip2

    wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
    tar xvf extundelete-0.2.4.tar.bz2
    cd extundelete-0.2.4/
    ./configure --prefix=/usr/local/extundelete && make && make install ##编译指定安装路径
    cd /usr/local/extundelete/bin
    ln -s /usr/local/extundelete/bin/* /usr/sbin/
    2)模拟删除与恢复
    给虚拟机加一块硬盘,格式化为ext3类型挂载到/opt目录下,在该目录下新建一些文件;当我们要恢复删除的文件时,要先将硬盘从/opt目录下卸载下来,这样就不会在往里面写数据,避免之前的数据被覆盖,如果被覆盖那就可能不能恢复了。
    cd /opt
    echo 2 >a ##创建文件,也可以用touch、vi等方式来创建文件
    echo 3 >b
    ls
    rm -rf a
    cd ##开始恢复文件步骤
    umonut /opt
    cd /opt
    extundelete /dev/sdb1 --restore-all
    cd RECOVERED_FILES/
    ls ##可以看到a文件,表示恢复成功
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注:当我们恢复文件后,这个被恢复的文件是在/opt目录下的,但当我们再次挂载上磁盘之后,我们在/opt目录下就看不到刚刚被恢复的文件。

    恢复误删除的xfs类型文件

    2.恢复误删除的xfs文件
    extundelete 工具仅可以恢复 EXT 类型的文件,无法恢复 CentOS 7 系统默认采用 xfs 类型的文件。
    针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份,以避免数据丢失。xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。若系统中未安装 xfsdump与xfsrestore工具,可以通过yum install -y xfsdump命令安装。xfsdump 按照inode顺序备份一个 xfs文件系统。xfsdump 的备份级别有两种:0 表示完全备份;1-9 表示增量备份。xfsdump 的备份级别默认为 0。
    xfsdump 的命令格式为:xfsdump -f 备份存放位置 要备份路径或设备文件。常用的备份参数包括以下几种:
    -f:指定备份文件目录;
    -L:指定标签 session label;
    -M:指定设备标签 media label;
    -s:备份单个文件,-s 后面不能直接跟路径
    下面通过一个案例来备份恢复 xfs 类型的文件。
    1)制作环境
    首先添加一款新硬盘并格式化为 xfs 类 型的文件系统,然后挂在到/opt 目录下,此过程不表述。然后在该目录下创建文件,用来删除测试。
    cd /opt
    cp /etc/passwd ./ ##复制一份文件到该目录下
    mkdir test
    touch test/a ##
    使用xfsdump 命令备份整个分区
    yum install -y xfsdump
    xfsdump -f /opt/dump_sdc1 /dev/sdc1
    ####交互信息###
    please enter label for this dump session (timeout in 300 sec)
    -> dump_sdc1 ####指定备份会话标签

    please enter label for media in drive 0 (timeout in 300 sec)
    -> sdc1 ###指定设备标签,就是对要备份的设备做一个描述
    2)删除与恢复
    cd opt
    ls
    rm -rf *
    ls
    cd
    xfsrestore -f /tmp/dump_sdc1 /opt ##恢复
    ls /opt ##又可以看到我们的之前创建的文件了
    在这里插入图片描述

    五、总结

    关于在第一个实验中大家一定要记得创建软链接的那步,不然相关命令就不可用了;关于磁盘挂载前和挂载后,在挂载目录下文件的变化,以后进行描述。

    展开全文
  • 主要介绍了Linux下自动删除归档日志文件的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
  • Linux——深入理解linux文件系统与日志分析一、Linux文件系统二、日志分析1、日志的功能2、日志文件的分类3、主要日志文件的分类 一、Linux文件系统 二、日志分析 1、日志的功能 2、日志文件的分类 3、主要日志文件...
  • 深入理解Linux文件系统与日志文件block与inodeinode和block概述inode的内容inode的号码inode的大小inode的特殊作用访问文件的流程示意图硬链接与软链接恢复误删除的文件Linux主要包含的日志文件Linux系统的日志消息...
  • 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全 日志分类: 1. 连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这  两个文件无法直接cat查看,并且该文件...
  • 深入理解 Linux 文件系统2.1 inode 与 block 详解(1) inode 和 block 概述(2) inode 内容(3) 查看文件的 inode 号码(4) inode的大小(5) 文件存储总结(6) inode 节点耗尽故障处理(7) 恢复误删除的 ext 格式文件(8) ...
  • 文章目录前言一、深入理解Linux文件系统1.1、inode 与block 详解1.1.1、inode 和block 概述1.1.2、inode 的内容1.1.3、inode 的号码1.1.4、inode 的大小1.2、inode 耗尽故障处理1.3、硬链接与软链接1.3.1、硬链接...
  • # 1 utmp、wtmp、btmp文件Linux用户登录信息放在三个文件中:1 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;2 /var/log/wtmp:记录当前正在...
  • 文章目录前言一、inode与block1.1inode和block的概述1.2inode的内容1.2.1inode包含文件的元信息1.2.2Linux系统文件三个主要的时间属性1.2.3目录文件的结构1.2.4inode的号码1.2.5文件存储小结1.2.6inode的大小1.2.7...
  • 深入理解Linux文件系统与日志分析inode和block■inode和block概述■inode内容■用stat命令可以查看某个文件的inode信息■Linux系统文件三个主要的时间属性■inode的内容■用户通过文件名打开文件时,系统内部的过程...
  • 硬盘分区后的结构8.Linux系统文件三个主要的时间属性二、日志文件1.日志的功能2.日志文件的分类3.主要日志文件介绍4.日志记录的一般格式5.日志消息的级别6.用户日志分析7.程序日志分析8.日志管理策略 一、INODE与...
  • 一、Linux文件系统1.1 inode与block1.2 硬链接和软件1.3 案例:恢复误删除的文件(EXT类型)1.4 案例:xfs类型文件备份和恢复 二、日志文件2.1 日志的功能2.2 日志文件的分类2.3 主要日志文件分类 一、Linux...
  • Linux文件系统和日志分析inode和block概述文件和扇区块(block)文件数据inode(索引节点)inode的内容inode包含文件的元信息用stat命令可以查看某个文件的inode信息Linux系统文件三个主要时间属性目录文件的结构...
  • inode 的特殊作用二、链接文件三、恢复误删除文件四、分析日志文件1.日志文件的分类2.常见的日志文件3.日志的级别4.常见日志分析命令总结 前言 在处理linux系统故障时。故障的症状是最容易发现的,导致这一故障的...
  • 目录一、inode与block1.1 inode和block概述1.2 inode的...1-2三、恢复误删除文件3.1 恢复EXT类型的文件3.2 恢复XFS类型的文件3.3 xfsdump使用限制四、分析日志文件4.1 日志文件 4-14.2 日志文件 4-24.3 内核及系统日
  • 由各种应用程序独立管理的日志文件记录格式不统一 日志文件2-2 日志保存位置 默认位置:/var/log目录下 主要日志文件介绍 补充:/var/log/lastlog记录每个用户最近的登录时间 /var/log/sesure记录用户认证相关...
  • 文章目录文件系统扇区(sector)块(block)文件数据inode(索引节点或i节点)inode的内容inode包含文件的元信息Linux系统文件三个主要的时间属性inode号的查询inode的大小inode的特殊作用通过inode号删除文件模拟...
  • 深入理解Linux文件系统与日志 一、inode和block概述 文件数据包括元信息与实际数据 元信息:文件的属性信息 实际数据:文件内容 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节 block(块) ...
  • Linux上的日志系统syslogsyslog-ng: 开源日志系统:syslog()A:B:D:syslog服务:sysload:系统,非内核产生的信息klogd:内核,专门负责记录内核产生的日志信息kernel-->物理终端(/dev/console)-->/var/log/...
  • 系统使用久了需要对日志文件的内容进行清理,但有时因为粗心而将日志文件删除了,而不是清除日志内容,遇到这种情况该如何处理呢?其实删除日志文件syslog是可以恢复的,随小编来看看吧。下面以Unbutu系统为例,...
  • linux文件系统和日志分析!

    千次阅读 2021-05-17 16:55:14
    linux文件系统和日志分析一.inode和blockblock(块)inode(索引节点)stat命令二.硬链接与软链接三.恢复误删除的文件四.分析文件日志 一.inode和block 概述 文件数据包括元信息和实际数据。 文件存储在硬盘上,硬盘...
  • Linux日志文件总结

    千次阅读 2016-08-10 15:53:49
    Linux日志文件总结近期做笔试题目,考察linux日志配置文件相关内容,由于对此不了解,故看鸟哥的私房菜中的认识与分析日志文件一章,总结如下相关信息。 日志文件可以记录一个时间的何时、何地、何人、何事四大信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 127,415
精华内容 50,966
关键字:

linux查看文件删除记录日志

linux 订阅