当前位置: 首页 > article >正文

Linux故障排查中常用的命令

文章目录

  • 前言
  • 常用指令
    • 1. 系统状态和资源监控
    • 2. 磁盘和文件系统
    • 3. 网络排查
    • 4. 服务和进程
    • 5. 日志文件和错误信息
    • 6. 性能调优和调试
    • 7. 文件和目录
    • 8. 系统信息
    • 9. 其他调试工具
  • 参考资料


前言

在问题出现时进行以下分析

  1. 现象是什么
  2. 何时出现的
  3. 为什么会出现
  4. 哪个地方的问题
  5. 如何解决

常用指令

在Linux系统中进行故障排查时,有很多常用的命令可以帮助你快速定位和解决问题。以下是一些常用的排查命令,按功能分类:

1. 系统状态和资源监控

  • top:实时显示系统的进程、CPU、内存等资源使用情况。
    top
    
  • htop:类似于 top,但界面更加友好,支持交互操作(如果没有安装可以通过 sudo apt install htop 安装)。
    htop
    
  • free:查看系统内存和交换空间的使用情况。
    free -h
    
  • vmstat:显示虚拟内存、进程、I/O、系统等统计信息。
    vmstat
    
  • uptime:查看系统的运行时间、当前时间、系统负载。
    uptime
    
  • iostat:查看CPU和I/O设备的使用情况。
    iostat
    

2. 磁盘和文件系统

  • df:显示文件系统的磁盘使用情况。
    df -h
    
  • du:查看某个目录下文件和子目录的磁盘使用情况。
    du -sh /path/to/directory
    
  • lsblk:列出所有的块设备及其挂载点。
    lsblk
    
  • fdisk -l:列出所有的分区和磁盘设备信息。
    sudo fdisk -l
    
  • smartctl:检查硬盘健康状况。
    sudo smartctl -a /dev/sda
    
  • fsck:检查和修复文件系统错误。
    sudo fsck /dev/sda1
    

3. 网络排查

  • ifconfig / ip a:查看网络接口配置和IP地址信息。
    ifconfig
    ip a
    
  • ping:测试主机之间的网络连通性。
    ping <hostname or IP>
    
  • traceroute:查看数据包从源到目的地的路径,诊断网络中的延迟或路由问题。
    traceroute <hostname or IP>
    
  • netstat / ss:查看网络连接、端口和路由信息。
    netstat -tuln
    ss -tuln
    
  • route:查看路由表。
    route -n
    
  • nslookup / dig:DNS查询工具,查看域名解析是否正常。
    nslookup <hostname>
    dig <hostname>
    

4. 服务和进程

  • ps:查看当前运行的进程。
    ps aux
    
  • top:查看系统的实时进程状态和资源使用情况。
    top
    
  • systemctl:管理和查看 systemd 管理的服务。
    systemctl status <service_name>
    systemctl restart <service_name>
    
  • service:老式的服务管理命令,用于启动、停止服务。
    service <service_name> status
    service <service_name> restart
    
  • kill / killall:终止进程。
    kill <pid>           # 根据PID终止进程
    killall <process_name>  # 根据进程名称终止所有相关进程
    

5. 日志文件和错误信息

  • dmesg:显示内核缓冲区的日志信息,常用于查看硬件、驱动、启动等问题。
    dmesg | tail
    
  • journalctl:查看 systemd 日志,支持过滤和查看详细信息。
    journalctl -xe   # 查看系统日志
    journalctl -u <service_name>  # 查看某个服务的日志
    
  • tail:查看文件的尾部内容,常用于查看日志文件的最新输出。
    tail -f /var/log/syslog
    tail -f /var/log/messages
    

6. 性能调优和调试

  • strace:跟踪系统调用和信号,适用于调试应用程序。
    strace -p <pid>   # 追踪某个进程
    strace <command>  # 追踪执行的命令
    
  • lsof:列出当前打开的文件和占用这些文件的进程。
    lsof
    
  • netstat:查看网络连接和端口占用情况。
    netstat -tuln
    

7. 文件和目录

  • find:查找文件和目录。
    find /path/to/search -name "*.log"
    
  • locate:查找文件,利用预先构建的数据库,速度比 find 快。
    locate <filename>
    
  • grep:在文件中搜索指定的文本。
    grep "error" /var/log/syslog
    

8. 系统信息

  • uname:查看系统的基本信息。
    uname -a   # 查看操作系统内核、架构等信息
    
  • lscpu:查看CPU架构和信息。
    lscpu
    
  • lsusb:查看USB设备信息。
    lsusb
    
  • lspci:查看PCI设备信息。
    lspci
    

9. 其他调试工具

  • watch:定时执行某个命令,常用于实时监控某些系统状态。
    watch -n 1 df -h
    
  • atop:高级的性能监控工具,提供更详细的系统资源统计信息。
    atop
    

参考资料

https://www.jianshu.com/p/0bbac570fa4c

https://potatoes.blog.csdn.net/article/details/122744731

https://blog.csdn.net/YourMr/article/details/136645800

https://blog.csdn.net/wzk4869/article/details/132855372


http://www.kler.cn/a/395700.html

相关文章:

  • java基础入门学习09-迭代器
  • 提升前端性能:如何优化多个异步请求的执行效率Promise.all()
  • sql专题 之 where和join on
  • C++中的std::tuple和std::pair
  • Android Studio更新成2024.1.2版本后旧项目Gradle配置问题
  • 群控系统服务端开发模式-应用开发-前端个人信息功能
  • idea 实现版本的切换
  • Java 使用MyBatis-Plus数据操作关键字冲突报错You have an error in your SQL syntax问题
  • linux逻辑卷练习
  • Mybatis官方生成器使用示例
  • 【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉”
  • 2023 年 3 月青少年软编等考 C 语言二级真题解析
  • 后端总指挥---文件接口
  • 坚持燃油新能源双赛道发力,MG ES5MG7 2025款亮相广州车展
  • Ascend C算子性能优化实用技巧05——API使用优化
  • [Python学习日记-67] 封装
  • 【快速上手】Kafka-Eagle 监控的安装部署
  • 蓝桥杯每日真题 - 第13天
  • YOLO系列基础(七)从数据增强到图像线性变换
  • 常见区块链公链的TPS是多少
  • MYSQL- 展示事件信息 EVENTS 语句(十八)
  • 036集——查询CAD图元属性字段信息:窗体显示(CAD—C#二次开发入门)
  • Jmeter中的前置处理器(一)
  • Ubuntu上搭建Flink Standalone集群
  • 虚拟机 | centos Stream 9 安装流程以及finalshell连接
  • 数字图像处理(c++ opencv):彩色图像处理-彩色基础与彩色模型