Linux命令记载 4

简介: Linux命令记载

十九.分析和排查系统故障

  1. 日志消息的级别
  1. 0 EMERG:紧急
  2. 1 ALERT:警告
  3. 2 CRLT:严重
  4. 3 ERR:错误
  5. 4 WARNING:提醒
  6. 5 NOTICE:注意
  7. 6 INFO:信息
  8. 7 DEBUG:调式

1.日志的功能


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


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


2.日志文件的分类


内核及系统日志


     由系统服务rsyslog统一进行管理,日志格式基本相似


用户日志


     记录系统用户登录及退出系统的相关信息


程序日志


     由各种应用程序独立管理的日志文件,记录格式不统一


3.日志保存位置


      默认位于:/var/log 目录下


4.主要日志文件介绍


内核及系统日志


      /var/log/messages


计划任务日志


      /var/log/cron


系统引导日志


      /var/log/dmesg


邮件系统日志


      /var/log/maillog


用户登录日志


      /var/log/lastlog:最近的用户登录事件


      /var/log/wtmp:用户成功登录、注销及系统开、关机事件,对应命令 last


      /var/log/btmp: 用户失败登录,错误验证尝试事件,对应命令 lastb


      /var/run/utmp:当前登录的每个用户的详细信息,对应查看命令 users  who  w


      /var/log/secure:与用户验证相关的安全性事件


5.日志配置文件


/etc/rsyslog.conf


*.info             #任何服务info级别及以上日志


mail.none      #例外,不记录


6.日志级别


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


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


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


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


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


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


6  INFO(信息):一般信息


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


7.日志一般格式


Jun  3 13:26:35 localhost vmusr[2439]: [critical] [GLib-GObject]


时间标签      主机         子系统名      日志级别和信息


8.程序日志


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


Web服务:/var/log/httpd/


access_log、error_log


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


access.log、cache.log、


9.分析工具


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


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


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


10.日志管理策略


及时作好备份和归档


延长日志保存期限


控制日志访问权限:日志中可能会包含各类敏感信息,如账户、口令等


集中管理日志:


      将服务器的日志文件发到统一的日志文件服务器(ELK)


      便于日志信息的统一收集、整理和分析


      杜绝日志信息的意外丢失、恶意篡改或删除


11.MBR故障修复


Mbr扇区    


      引导程序GRUB   446


      分区表          64


      结束标志      2


故障原因:


      病毒、木马等造成的破坏


      不正确的分区操作、磁盘读写误操作


故障现象:


      找不到引导程序,启动中断


      无法加载操作系统,开机后黑屏


解决思路:


      应提前作好备份文件


      以 CentOS 7安装光盘引导进入急救模式


      从备份文件中恢复


   


Mbr扇区故障模拟:


1.添加新硬盘: 分区 fdisk  /dev/sdb    格式化 mkfs.xfs  /dev/sdb1 挂载到 mount /dev/sdb1   /bak


2.备份mbr扇区:dd  if=/dev/sda  of=/bak/mbr.bak  bs=512  count=1


3.模拟故障:dd if=/dev/zero of=/dev/sda bs=512 count=1


4.重启:观察现象


排除故障


1)挂系统盘,进入急救模式 3--2-1


2)重新挂载:mount /dev/sdb1  /aa


3)恢复:dd  if=/aa/mbr.bak   of=/dev/sda  bs=512  count=1


4)exit


12.修复 GRUB 引导故障


故障原因:


      MBR 中的 GRUB 引导程序遭到破坏


      grub.conf 文件丢失、引导配置有误


故障现象:


      系统引导停滞,显示“grub>” 提示符


解决思路:


      尝试手动输入引导命令


      进入急救模式,重写或者从备份中恢复 grub.conf


      向 MBR 扇区中重建 grub 程序


模拟grub引导故障


1.cp  /boot/grub2/grub.cfg   /boot/grub2/grub.cfg.bak


2.Rm  -f   /boot/grub/grub.cfg


3.Reboot


解决grub引导故障


插入系统盘,光盘启动


进入急救模式


chroot  /mnt/sysimage


cp  /boot/grub/grub.cfg.bak    /boot/grub/grub.cfg  


13.修复文件系统


故障原因


      非正常关机、突然断电、设备读写失误等


      文件系统的超级块(super-block)信息被破坏


故障现象


      无法向分区中读取或写入数据


      启动后提示“Give root password for maintenance”


解决思路


      根据提示输入 root 口令,进入修复状态


      使用xfs_repair命令进行修复


模拟故障:


      破坏:  创建分区、格式化,先不要挂载


             dd if=/dev/zero of=/dev/sdb1 bs=512 count=4


      修复:xfs_repair /dev/sdb1


14.硬盘i节点耗尽


故障原因


      磁盘空间已被大量的数据占满,空间耗尽


      虽然还有可用空间,但文件数i节点耗尽


故障现象


      无法写入新的文件,提示“… : 设备上没有空间”


      部分程序无法运行,甚至系统无法启动


解决思路


      清理磁盘空间,删除无用、冗余的文件


      转移或删除占用大量 i 节点的琐碎文件


      进入急救模式进行修复


      为用户设置磁盘配额


模拟故障:


      添加一块硬盘


      划分一个100M的分区,格式化,挂载到/data目录下


      df -i  /data (查看i节点的数量)


      vim  killnode.sh


             #!/bin/bash


             i=1


             while [ $i -le 前面查到的i节点数 ]


             do  


                    touch /data/file$i


                    let i++


             done


      sh   killnode.sh &


   


15.磁盘坏道


故障原因


      磁盘设备中存在坏道(逻辑的或物理的)


故障现象


      读取磁盘中的数据时,磁盘设备发出异常声响。


      访问磁盘中的某个文件时,反复读取且出错,提示文件损坏


      对于新建立的分区无法完成格式化


      系统使用该磁盘时频繁死机


解决思路


      检测硬盘中是否存在坏道


      修复硬盘,或更换新的硬盘


      badblocks -sv /dev/sdb

make方法

make clean #清除上一次make命令生成的文件

make distclean #清除上一次make以及configure命令生成的文件

make -j 4 #使用4进程同时编译,提升编译速度

XFS增量备份

语法:xfsdump -f 备份目标位置 备份目录(挂载目录或磁盘分区)

提示:编写标签,第一次为会话标签,第二次为设备标签

免交互备份:

语法:xfsdump -f 存放位置 备份目录 -L 会话标签 -M 设备标签

xfsdump -f /opt/dump_sda1 /dev/sda1 -L dump_sda1 -M sda1_is

指定只备份分区中某个目录

参数:-s 文件路径 只能指定的问价进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)

格式:xfsdump -f /opt/233_dump -s 233.txt /dev/sdb1  -L dump_233 -M sdb1

查看备份记录

xfsdump -I

文件系统恢复

语法:xfsrestore -f 指定恢复文件的位置  指定存放恢复后的文件的路径

恢复单个文件

语法:xfsrestore -f 恢复文件路径 -s 恢复文件 恢复目录

增量备份

先备份完整备份

语法:xfsdump -l 1 -f 备份保存位置 备份文件

-l  做一个等级为1的备份

恢复增量备份

语法:xfsrestore -f 恢复文件  恢复目标位置

注:按顺序恢复增量备份,恢复数据会不完整

windows文本文件上传到Linux上出现乱码

解决:

格式:iconv -f gb2312 -t utf8 乱码文件 -o 转换为的名称

在Linux上编写的shell脚本到windowx上出现没有换行

解决:

工具:dos2unix unix2dos等工具

格式: dos2unix Linux上的shell文件

使用远程xshell命令上传文件和下传文件

注:需要rz工具下载,只可以用于远程工具连接

rz本地上传文件   sz下传文件

系统监控

proc文件系统

和整个Linux系统相关的参数如下:


/proc/cmdline:加载kernal时的相关指令与参数


/proc/cpuinfo:CPU相关的信息,包括频率,类型与运算能力


/proc/devices:记录了系统各个主要设备的主设备号码


/proc/filesystems:记录系统加载的文件系统


/proc/loadavg:平均负载值top看到的


/proc/meminfo:内存信息,free命令查看的


/proc/modules:系统已经加载的模块


/proc/mounts:系统已经挂载的数据


/proc/partitons:系统的分区文件


/proc/version:系统的核心版本uname -a看到的内容常用的系统监视命令:

  1. uptime

显示顺序:现在的时间,系统运行时间,目前多少登录用户,系统在过去一分钟,5分钟,15分钟内的平均负载。

[root@localhost 1]# uptime

07:32:01 up 15 min,  1 user,  load average: 0.00, 0.01, 0.02

  1. free
显示当前系统未使用和已经使用的内存数目。
[root@localhost 1]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M         79M        761M        7.0M        135M        745M
Swap:          2.0G          0B        2.0G
————————————————
版权声明:本文为CSDN博主「努力买大G」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuan130625/article/details/132405150
  1. vmstat
显示虚拟内存状态,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。
[root@localhost 1]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 779916    896 138060    0    0    93     5   44  111  0  0 100  0  0
————————————————
版权声明:本文为CSDN博主「努力买大G」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yuan130625/article/details/132405150
  1. mpstat

最大特点:可以查看CPU中每个计算机核心的统计数据。

注:需要安装sysstat

  1. iostat

用于监视系统输入输出设备和CPU的使用情况。能查看到系统IO情况信息,从而确定IO性能是否存在瓶颈。

  1. sar

sar是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况,系统调用的使用情况,磁盘I/O,CPU效率,内存使用情况,进程活动及IPC有关的活动等。


sar命令常用格式:sar [options] [-A] [-o file] t [n] 其中:


t为采样间隔,n为采样次数,默认值是1;


-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。


options 为命令行选项,sar命令常用选项如下:


-A:所有报告的总和


-u:输出CPU使用情况的统计信息


-v:输出inode、文件和其他内核表的统计信息


-d:输出每一个块设备的活动信息


-r:输出内存和交换空间的统计信息


-b:显示I/O和传送速率的统计信息


-a:文件读写情况


-c:输出进程统计信息,每秒创建的进程数


-R:输出内存页面的统计信息


-y:终端设备活动情况


-w:输出系统交换活动信息


相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
打赏
0
0
0
0
2
分享
相关文章
|
24天前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
58 23
Linux系统之whereis命令的基本使用
|
10天前
|
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
72 25
|
9天前
|
Linux查看内存命令
1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h • -h 选项:以易读的格式(如GB、MB)显示内存大小。 输出示例: total used free shared buff/cache available Mem: 15Gi 4.7Gi 4.1Gi 288Mi 6.6Gi 9.9Gi Swap: 2.0Gi 0B 2.0Gi • to
23 2
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
49 11
|
3月前
|
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
122 14
Linux 10 个“who”命令示例
|
3月前
|
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
272 20
|
3月前
|
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
175 8
|
4月前
|
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
74 9
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等