当前位置:首页>Linux>Linux故障排查命令大全(60个)

Linux故障排查命令大全(60个)

  • 2026-06-29 02:01:57
Linux故障排查命令大全(60个)

从入门到精通,掌握最全面的故障排查工具


今天,我给大家整理分享60个最实用的故障排查命令,按场景分类,每个都有详细说明。

看完将掌握

  • • ✅ 系统状态快速检查(10个命令)
  • • ✅ 进程问题精准定位(10个命令)
  • • ✅ 文件系统故障排查(10个命令)
  • • ✅ 网络问题全面诊断(10个命令)
  • • ✅ 日志分析高效处理(10个命令)
  • • ✅ 系统调试深度追踪(10个命令)

收藏这一篇,故障排查不求人!


📋 目录

  • • 一、系统状态检查(10个命令)
  • • 二、进程管理(10个命令)
  • • 三、文件系统检查(10个命令)
  • • 四、网络诊断(10个命令)
  • • 五、日志分析(10个命令)
  • • 六、系统调试(10个命令)
  • • 故障排查流程图
  • • 常见故障速查表

一、系统状态检查(10个命令)

1. uptime - 系统运行时间和负载

功能:快速查看系统运行时间、登录用户数和平均负载

语法

uptime

实战案例

# 案例1:快速检查系统状态uptime 03:15:42 up 127 days, 14:23,  3 users,  load average: 8.5, 7.2, 6.8 ↑        ↑                     ↑         ↑ 当前时间  运行127天            3个用户   1/5/15分钟负载# 分析:# 负载8.5,如果是8核CPU,负载率约106%,系统过载# 需要立即查看是什么进程导致# 案例2:判断负载趋势uptimeload average: 2.5, 5.8, 8.2# 1分钟2.5,5分钟5.8,15分钟8.2# 负载在下降,说明问题正在缓解

负载判断标准

负载 / CPU核数:  < 0.7:系统空闲  0.7-1.0:正常  1.0-2.0:轻度负载  2.0-5.0:中度负载  > 5.0:重度负载(需要立即处理)

故障排查

# 负载高,下一步:1. 查看是CPU还是IO导致   $ vmstat 12. 找出占用资源的进程   $ top3. 查看具体进程   $ ps aux --sort=-%cpu | head -10

2. uname - 系统信息

功能:显示系统内核和硬件信息

语法

uname [选项]

常用选项

  • • -a:显示所有信息
  • • -r:内核版本
  • • -m:硬件架构
  • • -n:主机名
  • • -s:内核名称

实战案例

# 案例1:查看完整系统信息uname -aLinux server1 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux      ↑       ↑                                                        ↑      主机名  内核版本                                                 架构# 案例2:只看内核版本uname -r5.10.0-21-amd64# 案例3:检查架构uname -mx86_64  # 64位系统

故障排查场景

# 场景1:软件兼容性问题uname -r# 检查内核版本是否满足软件要求# 场景2:驱动问题uname -a# 确认内核版本,下载对应驱动# 场景3:性能问题uname -r# 旧内核可能有性能bug,考虑升级

3. hostname - 主机名

功能:显示或设置系统主机名

语法

hostname [选项] [新主机名]

常用选项

  • • -f:显示FQDN(完全限定域名)
  • • -i:显示IP地址
  • • -I:显示所有IP地址
  • • -s:显示短主机名

实战案例

# 案例1:查看主机名$ hostnameserver1# 案例2:查看完整域名$ hostname -fserver1.example.com# 案例3:查看IP地址$ hostname -I192.168.1.100 10.0.0.100# 案例4:临时修改主机名$ hostname new-server# 重启后失效# 案例5:永久修改主机名$ hostnamectl set-hostname new-server# 或echo"new-server" > /etc/hostname

故障排查场景

# 场景1:集群节点识别$ hostname# 确认当前在哪台服务器# 场景2:网络配置问题$ hostname -I# 检查IP地址是否正确# 场景3:DNS解析问题$ hostname -f# 检查域名解析是否正常

4. date - 系统时间

功能:显示或设置系统日期和时间

语法

date [选项] [+格式]

常用选项

  • • -d STRING:显示指定时间
  • • -s STRING:设置时间
  • • -u:显示UTC时间
  • • +FORMAT:自定义格式

实战案例

# 案例1:查看当前时间dateMon Jan  1 15:30:45 CST 2024# 案例2:自定义格式date"+%Y-%m-%d %H:%M:%S"2024-01-01 15:30:45# 案例3:查看时间戳date +%s1704096645# 案例4:时间戳转日期date -d @1704096645Mon Jan  1 15:30:45 CST 2024# 案例5:计算时间date -d "2 days ago"Sat Dec 30 15:30:45 CST 2023date -d "next Monday"Mon Jan  8 00:00:00 CST 2024# 案例6:设置时间(需root)date -s "2024-01-01 15:30:45"

故障排查场景

# 场景1:时间同步问题date# 检查时间是否正确# 场景2:日志时间对不上datedate -u  # 对比本地时间和UTC时间# 场景3:证书过期date# 检查系统时间是否正确# 场景4:定时任务不执行date# 确认时区和时间设置

时间格式

%Y:年(2024)%m:月(01-12)%d:日(01-31)%H:时(00-23)%M:分(00-59)%S:秒(00-59)%s:时间戳%F:日期(2024-01-01)%T:时间(15:30:45)

5. who/w - 登录用户

功能:显示当前登录的用户信息

语法

who [选项]w [选项]

常用选项

  • • who -a:显示所有信息
  • • who -b:最后启动时间
  • • who -r:运行级别
  • • w:更详细的信息

实战案例

# 案例1:查看登录用户whoroot     pts/0        2024-01-01 10:00 (192.168.1.200)admin    pts/1        2024-01-01 14:30 (192.168.1.201)app      pts/2        2024-01-01 15:00 (192.168.1.202)# 案例2:详细信息$ w 15:30:45 up 127 days, 14:23,  3 users,  load average: 2.5, 1.8, 1.2USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATroot     pts/0    192.168.1.200    10:00    5:30m  0.12s  0.12s -bashadmin    pts/1    192.168.1.201    14:30    0.00s  0.45s  0.01s wapp      pts/2    192.168.1.202    15:00    30:00  1.23s  1.23s python app.py# 案例3:查看系统启动时间who -b         system boot  2023-08-27 01:07# 案例4:查看运行级别who -r         run-level 3  2023-08-27 01:07

故障排查场景

# 场景1:安全审计who# 检查是否有异常登录# 场景2:系统卡顿$ w# 查看用户在做什么,JCPU/PCPU占用# 场景3:无法登录who# 检查是否达到最大登录数# 场景4:找出占用资源的用户$ w | sort -k6 -rn# 按JCPU排序

6. last - 登录历史

功能:显示用户登录历史记录

语法

last [选项] [用户名]

常用选项

  • • -n N:显示最近N条
  • • -f FILE:指定日志文件
  • • -t YYYYMMDDHHMMSS:显示到指定时间
  • • -x:显示系统关机/重启记录

实战案例

# 案例1:查看登录历史$ lastadmin    pts/1        192.168.1.201    Mon Jan  1 14:30   still logged inroot     pts/0        192.168.1.200    Mon Jan  1 10:00   still logged inadmin    pts/1        192.168.1.201    Sun Dec 31 18:00 - 22:00  (04:00)reboot   system boot  5.10.0-21-amd64  Sun Dec 31 17:55   still running# 案例2:查看特定用户$ last adminadmin    pts/1        192.168.1.201    Mon Jan  1 14:30   still logged inadmin    pts/1        192.168.1.201    Sun Dec 31 18:00 - 22:00  (04:00)admin    pts/0        192.168.1.201    Sun Dec 31 10:00 - 12:00  (02:00)# 案例3:查看最近10条$ last -n 10# 案例4:查看重启记录$ last rebootreboot   system boot  5.10.0-21-amd64  Sun Dec 31 17:55   still runningreboot   system boot  5.10.0-21-amd64  Sat Dec 30 03:00 - 17:50  (14:50)# 案例5:查看系统关机记录$ last -x | grep shutdownshutdown system down  5.10.0-21-amd64  Sat Dec 30 17:50 - 17:55  (00:05)

故障排查场景

# 场景1:安全事件调查$ last | grep "192.168.1.100"# 查看某IP的登录记录# 场景2:系统异常重启$ last reboot# 查看重启时间,对比日志# 场景3:用户行为审计$ last admin | head -20# 查看用户登录模式# 场景4:找出登录失败$ lastb  # 查看失败登录记录

7. dmesg - 内核日志

功能:显示内核环形缓冲区的消息

语法

dmesg [选项]

常用选项

  • • -T:显示人类可读的时间戳
  • • -H:人类可读格式
  • • -l LEVEL:按级别过滤
  • • -f FACILITY:按设施过滤
  • • -w:持续监控
  • • -c:清空缓冲区

实战案例

# 案例1:查看内核日志$ dmesg | tail -20[1234567.890123] Out of memory: Kill process 12345 (java) score 890 or sacrifice child[1234567.890456] Killed process 12345 (java) total-vm:4194304kB, anon-rss:2097152kB, file-rss:0kB# 案例2:人类可读格式$ dmesg -T[Mon Jan  1 15:30:45 2024] Out of memory: Kill process 12345 (java)# 案例3:查看错误信息$ dmesg -l err[Mon Jan  1 15:30:45 2024] EXT4-fs error (device sda1): ext4_find_entry:1234: inode #12345: comm mysqld: reading directory lblock 0# 案例4:查看硬件信息$ dmesg | grep -i "eth0"[    2.345678] eth0: link up, 1000Mbps, full-duplex# 案例5:持续监控$ dmesg -w# 类似tail -f,实时显示新消息# 案例6:查看OOM信息$ dmesg | grep -i "out of memory"

日志级别

emerg (0):系统不可用alert (1):必须立即采取行动crit (2):严重情况err (3):错误情况warn (4):警告情况notice (5):正常但重要的情况info (6):信息性消息debug (7):调试级别消息

故障排查场景

# 场景1:系统崩溃$ dmesg | grep -i "panic\|oops\|bug"# 场景2:内存不足$ dmesg | grep -i "oom\|out of memory"# 场景3:硬盘错误$ dmesg | grep -i "error\|fail" | grep -i "sd[a-z]"# 场景4:网卡问题$ dmesg | grep -i "eth\|link"# 场景5:USB设备$ dmesg | grep -i "usb"

8. journalctl - 系统日志

功能:查询和显示systemd日志

语法

journalctl [选项]

常用选项

  • • -u UNIT:查看特定服务
  • • -f:实时跟踪
  • • -n N:显示最后N行
  • • -p PRIORITY:按优先级过滤
  • • --since:起始时间
  • • --until:结束时间
  • • -b:本次启动的日志
  • • -k:内核日志
  • • -r:反向显示(最新在前)

实战案例

# 案例1:查看系统日志$ journalctl -n 50-- Logs begin at Sun 2023-08-27 01:07:15 CST, end at Mon 2024-01-01 15:30:45 CST. --Jan 01 15:30:45 server1 sshd[12345]: Accepted password for admin from 192.168.1.201Jan 01 15:30:45 server1 systemd[1]: Started Session 123 of user admin.# 案例2:查看特定服务$ journalctl -u nginxJan 01 15:00:00 server1 nginx[1234]: 2024/01/01 15:00:00 [error] 1234#1234: *123 connect() failed (111: Connection refused)# 案例3:实时跟踪$ journalctl -f# 类似tail -f# 案例4:查看特定时间段$ journalctl --since "2024-01-01 14:00:00" --until"2024-01-01 15:00:00"# 案例5:查看今天的日志$ journalctl --since today# 案例6:查看昨天的日志$ journalctl --since yesterday --until today# 案例7:查看本次启动的日志$ journalctl -b# 案例8:查看上次启动的日志$ journalctl -b -1# 案例9:查看错误日志$ journalctl -p err# 案例10:查看内核日志$ journalctl -k# 案例11:按进程ID查看$ journalctl _PID=1234# 案例12:导出日志$ journalctl -u nginx --since today > nginx.log

优先级

0: emerg(紧急)1: alert(警报)2: crit(严重)3: err(错误)4: warning(警告)5: notice(注意)6: info(信息)7: debug(调试)

故障排查场景

# 场景1:服务启动失败$ journalctl -u nginx -n 50# 查看nginx最近50条日志# 场景2:系统启动慢$ journalctl -b | grep "Startup finished"# 查看启动时间# 场景3:查找错误$ journalctl -p err --since today# 场景4:服务异常重启$ journalctl -u mysql --since "1 hour ago"# 场景5:磁盘满$ journalctl --disk-usage# 查看日志占用空间# 清理日志$ journalctl --vacuum-time=7d  # 保留7天$ journalctl --vacuum-size=1G  # 保留1GB

9. systemctl - 服务管理

功能:控制systemd系统和服务管理器

语法

systemctl [选项] 命令 [服务名]

常用命令

  • • start:启动服务
  • • stop:停止服务
  • • restart:重启服务
  • • reload:重新加载配置
  • • status:查看状态
  • • enable:开机自启
  • • disable:禁用自启
  • • is-active:是否运行
  • • is-enabled:是否自启
  • • list-units:列出单元

实战案例

# 案例1:查看服务状态$ systemctl status nginx● nginx.service - A high performance web server and a reverse proxy server   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)   Active: active (running) since Mon 2024-01-01 10:00:00 CST; 5h 30min ago     Docs: man:nginx(8)  Process: 1234 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)  Process: 1235 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 1236 (nginx)    Tasks: 5 (limit: 4915)   Memory: 12.3M   CGroup: /system.slice/nginx.service           ├─1236 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;           ├─1237 nginx: worker process           └─1238 nginx: worker process# 案例2:启动服务$ systemctl start nginx# 案例3:停止服务$ systemctl stop nginx# 案例4:重启服务$ systemctl restart nginx# 案例5:重新加载配置$ systemctl reload nginx# 案例6:设置开机自启$ systemctl enable nginxCreated symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.# 案例7:禁用开机自启$ systemctl disable nginx# 案例8:查看所有服务$ systemctl list-units --type=serviceUNIT                               LOAD   ACTIVE SUB     DESCRIPTIONnginx.service                      loaded active running A high performance web servermysql.service                      loaded active running MySQL Community Serversshd.service                       loaded active running OpenSSH server daemon# 案例9:查看失败的服务$ systemctl --failedUNIT          LOAD   ACTIVE SUB    DESCRIPTIONapache2.service loaded failed failed The Apache HTTP Server# 案例10:查看服务依赖$ systemctl list-dependencies nginx# 案例11:查看服务日志$ systemctl status nginx -l# 或$ journalctl -u nginx

故障排查场景

# 场景1:服务无法启动$ systemctl status nginx# 查看错误信息$ journalctl -u nginx -n 50# 查看详细日志# 场景2:服务异常停止$ systemctl status mysql# 查看状态和最后日志# 场景3:开机服务未启动$ systemctl is-enabled nginxdisabled  # 未设置自启$ systemctl enable nginx# 设置自启# 场景4:服务启动慢$ systemd-analyze blame# 查看启动时间# 场景5:配置文件错误$ systemctl daemon-reload# 重新加载配置$ systemctl restart nginx

10. timedatectl - 时间管理

功能:查询和修改系统时间和日期设置

语法

timedatectl [选项] [命令]

常用命令

  • • status:显示当前设置
  • • set-time:设置时间
  • • set-timezone:设置时区
  • • set-ntp:启用/禁用NTP
  • • list-timezones:列出时区

实战案例

# 案例1:查看时间设置$ timedatectl               Local time: Mon 2024-01-01 15:30:45 CST           Universal time: Mon 2024-01-01 07:30:45 UTC                 RTC time: Mon 2024-01-01 07:30:45                Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes              NTP service: active          RTC inlocal TZ: no# 案例2:设置时区$ timedatectl set-timezone Asia/Shanghai# 案例3:列出所有时区$ timedatectl list-timezonesAfrica/AbidjanAfrica/Accra...Asia/Shanghai...# 案例4:设置时间$ timedatectl set-time "2024-01-01 15:30:45"# 案例5:启用NTP同步$ timedatectl set-ntp true# 案例6:禁用NTP同步$ timedatectl set-ntp false

故障排查场景

# 场景1:时间不准确$ timedatectl# 检查NTP是否启用$ timedatectl set-ntp true# 启用NTP同步# 场景2:时区错误$ timedatectl# 查看当前时区$ timedatectl set-timezone Asia/Shanghai# 设置正确时区# 场景3:证书过期$ timedatectl# 检查系统时间是否正确# 场景4:日志时间对不上$ timedatectl# 确认时区设置

二、进程管理(10个命令)

11. ps - 进程列表

功能:显示当前进程的快照

语法

ps [选项]

常用选项

  • • aux:显示所有进程(BSD风格)
  • • -ef:显示所有进程(System V风格)
  • • -eLf:显示线程
  • • --sort:排序
  • • -o:自定义输出
  • • -p PID:指定进程
  • • -u USER:指定用户
  • • -C CMD:指定命令

实战案例

# 案例1:查看所有进程$ ps auxUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot         1  0.0  0.1 185728  9876 ?        Ss   Jan01   0:12 /sbin/initmysql     1234 45.2 15.3 2621440 1310720 ?     Sl   10:00  125:34 /usr/sbin/mysqldapp       5678 12.3  8.5 1048576  524288 ?     Sl   14:00   45:12 java -jar app.jar# 案例2:按CPU排序$ ps aux --sort=-%cpu | head -10# 显示CPU占用最高的10个进程# 案例3:按内存排序$ ps aux --sort=-%mem | head -10# 案例4:查看进程树$ ps auxf# 或$ ps -ejH# 案例5:查看线程$ ps -eLf# 或$ ps -T -p 1234# 案例6:自定义输出$ ps -eo pid,ppid,cmd,%cpu,%mem,stat,start  PID  PPID CMD                         %CPU %MEM STAT  STARTED    1     0 /sbin/init                   0.0  0.1 Ss   Jan01 1234     1 /usr/sbin/mysqld            45.2 15.3 Sl   10:00# 案例7:查看特定用户的进程$ ps -u mysql# 案例8:查看特定进程$ ps -p 1234 -o pid,ppid,cmd,%cpu,%mem# 案例9:查找进程$ ps aux | grep nginxroot      1234  0.0  0.1  12345  6789 ?        Ss   10:00   0:00 nginx: master processwww-data  1235  0.0  0.2  12345  8901 ?        S    10:00   0:12 nginx: worker process# 案例10:统计进程数$ ps aux | wc -l234  # 共234个进程

STAT字段说明

R: 运行中(Running)S: 可中断睡眠(Sleeping)D: 不可中断睡眠(Disk sleep)T: 停止(Stopped)Z: 僵尸进程(Zombie)<: 高优先级N: 低优先级L: 有页面锁定在内存s: 会话领导者l: 多线程+: 前台进程组

故障排查场景

# 场景1:CPU 100%$ ps aux --sort=-%cpu | head -10# 找出CPU占用最高的进程# 场景2:内存不足$ ps aux --sort=-%mem | head -10# 找出内存占用最高的进程# 场景3:僵尸进程$ ps aux | grep Z# 查找僵尸进程# 场景4:进程不存在$ ps aux | grep nginx# 确认进程是否运行# 场景5:进程关系$ ps auxf | grep -A 5 nginx# 查看进程树

12. pstree - 进程树

功能:以树状图显示进程关系

语法

pstree [选项] [pid|user]

常用选项

  • • -p:显示PID
  • • -a:显示命令行参数
  • • -u:显示用户切换
  • • -h:高亮当前进程
  • • -n:按PID排序
  • • -s:显示父进程

实战案例

# 案例1:查看进程树$ pstreesystemd─┬─ModemManager───2*[{ModemManager}]        ├─NetworkManager───2*[{NetworkManager}]        ├─accounts-daemon───2*[{accounts-daemon}]        ├─nginx───2*[nginx]        ├─mysqld───20*[{mysqld}]        └─sshd───sshd───bash───pstree# 案例2:显示PID$ pstree -psystemd(1)─┬─ModemManager(1234)─┬─{ModemManager}(1235)           │                     └─{ModemManager}(1236)           ├─nginx(5678)─┬─nginx(5679)           │             └─nginx(5680)           └─mysqld(9012)─┬─{mysqld}(9013)                          ├─{mysqld}(9014)                          └─{mysqld}(9015)# 案例3:显示命令行$ pstree -asystemd  ├─nginx -g daemon on;  │   ├─nginx -g daemon on;  │   └─nginx -g daemon on;  └─mysqld --defaults-file=/etc/mysql/my.cnf# 案例4:查看特定进程的树$ pstree -p 1234nginx(1234)─┬─nginx(1235)            └─nginx(1236)# 案例5:查看特定用户的进程树$ pstree mysqlmysqld─┬─{mysqld}       ├─{mysqld}       └─{mysqld}# 案例6:高亮显示$ pstree -h# 高亮当前进程及其祖先

故障排查场景

# 场景1:查找父进程$ pstree -p -s 1234# 显示进程1234的父进程链# 场景2:查看进程关系$ pstree -p | grep nginx# 查看nginx的进程结构# 场景3:僵尸进程$ pstree -p | grep defunct# 查找僵尸进程及其父进程# 场景4:进程泄漏$ pstree -p mysql# 查看mysql是否有异常多的子进程

13. top/htop - 进程监控

功能:实时显示系统和进程信息

语法

top [选项]htop [选项]

top常用选项

  • • -d N:刷新间隔N秒
  • • -p PID:只监控指定进程
  • • -u USER:只监控指定用户
  • • -H:显示线程
  • • -b:批处理模式
  • • -n N:刷新N次后退出

top交互式快捷键

P:按CPU排序M:按内存排序T:按运行时间排序k:杀死进程r:调整nice值1:显示每个CPUc:显示完整命令h:帮助q:退出

实战案例

# 案例1:基础监控$ toptop - 15:30:45 up 127 days, 14:23,  3 users,  load average: 2.5, 1.8, 1.2Tasks: 234 total,   2 running, 232 sleeping,   0 stopped,   0 zombie%Cpu(s): 45.2 us, 15.3 sy,  0.0 ni, 35.5 id,  3.2 wa,  0.0 hi,  0.8 si,  0.0 stMiB Mem :  15872.5 total,   2048.3 free,  10240.2 used,   3584.0 buff/cacheMiB Swap:   8192.0 total,   4096.0 free,   4096.0 used.   4608.3 avail Mem  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND 1234 mysql     20   0  2.5g    1.2g   100m R  95.3  15.2  125:34.56 mysqld 5678 app       20   0  1.0g    512m    50m S  12.3   8.5   45:12.34 java# 案例2:监控特定进程$ top -p 1234# 只显示PID 1234# 案例3:显示线程$ top -H -p 1234# 显示进程1234的所有线程# 案例4:批处理模式$ top -b -n 1 > top.log# 输出一次快照到文件# 案例5:监控特定用户$ top -u mysql# 只显示mysql用户的进程

htop优势

✓ 彩色界面✓ 支持鼠标✓ 显示所有CPU核心✓ 树形显示进程✓ 可以横向/纵向滚动✓ 更直观的操作

故障排查场景

# 场景1:CPU 100%$ top# 按P键,找出CPU占用最高的进程# 场景2:内存不足$ top# 按M键,找出内存占用最高的进程# 场景3:系统卡顿$ top# 查看load average和wa(IO等待)# 场景4:进程异常$ top -H -p 1234# 查看进程的线程情况

14. pgrep - 进程查找

功能:根据名称和属性查找进程

语法

pgrep [选项] 模式

常用选项

  • • -l:显示进程名
  • • -a:显示完整命令
  • • -u USER:指定用户
  • • -x:精确匹配
  • • -f:匹配完整命令行
  • • -n:最新的进程
  • • -o:最老的进程
  • • -c:计数

实战案例

# 案例1:查找进程$ pgrep nginx123412351236# 案例2:显示进程名$ pgrep -l nginx1234 nginx1235 nginx1236 nginx# 案例3:显示完整命令$ pgrep -a nginx1234 nginx: master process /usr/sbin/nginx1235 nginx: worker process1236 nginx: worker process# 案例4:查找特定用户的进程$ pgrep -u mysql12345678# 案例5:精确匹配$ pgrep -x nginx1234  # 只匹配进程名完全是nginx的# 案例6:匹配完整命令行$ pgrep -f "java.*app.jar"5678# 案例7:查找最新的进程$ pgrep -n nginx1236  # 最新启动的nginx进程# 案例8:统计进程数$ pgrep -c nginx3  # 共3个nginx进程

故障排查场景

# 场景1:检查进程是否运行$ pgrep nginx# 有输出说明运行,无输出说明未运行# 场景2:查找僵尸进程$ ps aux | grep Z | awk '{print $2}' | xargs pgrep -P# 查找僵尸进程的父进程# 场景3:批量操作$ pgrep nginx | xargs kill -HUP# 给所有nginx进程发送HUP信号# 场景4:监控进程数$ watch -n 1 'pgrep -c java'# 每秒显示java进程数

15. pkill - 进程终止

功能:根据名称和属性终止进程

语法

pkill [选项] 模式

常用选项

  • • -signal:指定信号
  • • -u USER:指定用户
  • • -x:精确匹配
  • • -f:匹配完整命令行
  • • -n:最新的进程
  • • -o:最老的进程

实战案例

# 案例1:终止进程$ pkill nginx# 终止所有nginx进程# 案例2:指定信号$ pkill -HUP nginx# 给nginx发送HUP信号(重新加载配置)$ pkill -9 java# 强制终止java进程# 案例3:终止特定用户的进程$ pkill -u app# 终止app用户的所有进程# 案例4:精确匹配$ pkill -x nginx# 只终止进程名完全是nginx的# 案例5:匹配完整命令行$ pkill -f "java.*app.jar"# 终止匹配的java进程# 案例6:终止最新的进程$ pkill -n nginx# 终止最新启动的nginx进程

常用信号

-1 (HUP):重新加载配置-2 (INT):中断(Ctrl+C)-9 (KILL):强制终止-15 (TERM):正常终止(默认)-STOP:暂停进程-CONT:继续进程

故障排查场景

# 场景1:重启服务$ pkill -HUP nginx# 重新加载nginx配置# 场景2:清理僵尸进程$ pkill -9 defunct# 强制终止僵尸进程(通常无效,需要终止父进程)# 场景3:批量终止$ pkill -u app# 终止某用户的所有进程# 场景4:紧急情况$ pkill -9 java# 强制终止所有java进程

16. kill/killall - 终止进程

功能:向进程发送信号

语法

kill [选项] PIDkillall [选项] 进程名

常用选项

  • • -l:列出所有信号
  • • -s SIGNAL:指定信号
  • • -9:强制终止
  • • -15:正常终止(默认)

实战案例

# 案例1:终止进程kill 1234# 正常终止进程1234# 案例2:强制终止kill -9 1234# 强制终止进程1234# 案例3:重新加载配置kill -HUP 1234# 给进程1234发送HUP信号# 案例4:列出所有信号kill -l 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR213) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT...# 案例5:使用killall$ killall nginx# 终止所有名为nginx的进程$ killall -9 java# 强制终止所有java进程# 案例6:批量终止$ ps aux | grep defunct | awk '{print $2}' | xargs kill -9# 强制终止所有僵尸进程

信号说明

SIGHUP (1):挂起,通常用于重新加载配置SIGINT (2):中断(Ctrl+C)SIGQUIT (3):退出(Ctrl+\)SIGKILL (9):强制终止,不能被捕获SIGTERM (15):正常终止,可以被捕获(默认)SIGSTOP (19):暂停,不能被捕获SIGCONT (18):继续

故障排查场景

# 场景1:进程无响应kill 1234# 先尝试正常终止kill -9 1234# 如果无效,强制终止# 场景2:重启服务kill -HUP $(cat /var/run/nginx.pid)# 重新加载nginx配置# 场景3:清理进程$ killall -9 defunct# 尝试清理僵尸进程# 场景4:批量操作$ pgrep java | xargs kill -15# 正常终止所有java进程

17. pidof - 查找进程ID

功能:查找正在运行的程序的进程ID

语法

pidof [选项] 程序名

实战案例

# 案例1:查找进程ID$ pidof nginx1234 1235 1236# 案例2:只返回一个PID$ pidof -s nginx1234# 案例3:用于脚本kill $(pidof nginx)# 终止所有nginx进程if pidof nginx > /dev/null; thenecho"nginx is running"elseecho"nginx is not running"fi

18. nice/renice - 优先级调整

功能:设置或调整进程优先级

语法

nice -n 优先级 命令renice 优先级 -p PID

实战案例

# 案例1:以低优先级运行nice -n 19 ./backup.sh# nice值19(最低优先级)# 案例2:以高优先级运行nice -n -20 ./critical_task.sh# nice值-20(最高优先级,需root)# 案例3:调整已运行进程$ renice 10 -p 1234# 将进程1234的nice值调整为10# 案例4:批量调整$ renice 15 -u app# 将app用户的所有进程nice值调整为15

nice值说明

-20到19:数值越小,优先级越高-20:最高优先级(需root)0:默认优先级19:最低优先级

19. nohup - 后台运行

功能:使命令在退出登录后继续运行

语法

nohup 命令 &

实战案例

# 案例1:后台运行nohup ./long_task.sh &[1] 1234nohup: ignoring input and appending output to 'nohup.out'# 案例2:指定输出文件nohup ./task.sh > task.log 2>&1 &# 案例3:查看输出tail -f nohup.out# 案例4:结合nice使用nohupnice -n 19 ./backup.sh &

20. screen/tmux - 会话管理

功能:终端复用器,保持会话

语法

screen [选项]tmux [选项]

screen常用命令

# 创建会话$ screen -S session_name# 列出会话$ screen -ls# 恢复会话$ screen -r session_name# 分离会话:Ctrl+A, D# 终止会话$ screen -X -S session_name quit

tmux常用命令

# 创建会话$ tmux new -s session_name# 列出会话$ tmux ls# 恢复会话$ tmux attach -t session_name# 分离会话:Ctrl+B, D# 终止会话$ tmux kill-session -t session_name

故障排查场景

# 场景1:长时间任务$ screen -S backup$ ./backup.sh# Ctrl+A, D 分离会话# 场景2:远程维护$ tmux new -s maintenance$ systemctl restart mysql# 即使断开连接,任务继续执行# 场景3:多窗口监控$ tmux new -s monitor# Ctrl+B, C 创建新窗口# Ctrl+B, N 切换窗口

三、文件系统检查(10个命令)

21. df - 磁盘空间

功能:显示文件系统磁盘空间使用情况

语法

df [选项]

常用选项

  • • -h:人类可读格式
  • • -i:显示inode信息
  • • -T:显示文件系统类型
  • • -t TYPE:只显示指定类型
  • • -x TYPE:排除指定类型

实战案例

# 案例1:查看磁盘空间df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda1        50G   45G   3.0G  94% //dev/sda2       100G   80G   15G  85% /datatmpfs           7.8G  123M  7.7G   2% /dev/shm# 案例2:查看inode使用df -hiFilesystem     Inodes IUsed IFree IUse% Mounted on/dev/sda1        3.2M  3.1M  100K   97% //dev/sda2        6.4M  5.8M  600K   91% /data# 案例3:显示文件系统类型df -hTFilesystem     Type      Size  Used Avail Use% Mounted on/dev/sda1      ext4       50G   45G  3.0G  94% //dev/sda2      xfs       100G   80G   15G  85% /data

故障排查场景

# 场景1:磁盘满df -h# Use% > 90%,需要清理# 场景2:inode耗尽df -hi# IUse% > 90%,即使空间充足也无法创建文件# 场景3:找出大文件df -h# 确定哪个分区满了du -h /data | sort -rh | head -20# 找出大目录

22. du - 目录大小

功能:估算文件和目录的磁盘使用空间

语法

du [选项] [目录/文件]

常用选项

  • • -h:人类可读格式
  • • -s:只显示总计
  • • -c:显示总计
  • • -a:显示所有文件
  • • -d N:最大深度N层
  • • --max-depth=N:同-d

实战案例

# 案例1:查看目录大小du -sh /data80G     /data# 案例2:查看子目录du -h --max-depth=1 /data | sort -rh80G     /data50G     /data/mysql20G     /data/logs10G     /data/backup# 案例3:找出最大的10个目录du -h /data | sort -rh | head -10# 案例4:查看所有文件du -ah /data | sort -rh | head -20# 案例5:排除某些目录du -sh --exclude='*.log' /data

故障排查场景

# 场景1:磁盘满,找出大目录du -h --max-depth=1 / | sort -rh | head -10# 场景2:找出大文件$ find /data -type f -size +1G -execdu -h {} \; | sort -rh# 场景3:快速定位du -h /data 2>/dev/null | grep '^[0-9.]*G' | sort -rh

23. lsof - 打开文件列表

功能:列出打开的文件和进程

语法

lsof [选项] [文件]

常用选项

  • • -p PID:指定进程
  • • -u USER:指定用户
  • • -c CMD:指定命令
  • • -i:网络连接
  • • +D DIR:目录下的所有文件
  • • -t:只显示PID

实战案例

# 案例1:查看进程打开的文件$ lsof -p 1234# 案例2:查看文件被哪些进程打开$ lsof /var/lib/mysql/ibdata1# 案例3:查看网络连接$ lsof -i$ lsof -i :3306  # 查看3306端口# 案例4:查看目录下打开的文件$ lsof +D /data# 案例5:恢复删除的文件$ lsof | grep deletedcp /proc/1234/fd/10 /path/to/recover

故障排查场景

# 场景1:文件被占用无法删除$ lsof /path/to/file# 找出占用文件的进程# 场景2:磁盘满但du显示空间充足$ lsof | grep deleted# 查找已删除但未释放的文件# 场景3:端口被占用$ lsof -i :80# 查看80端口被哪个进程占用# 场景4:进程打开文件过多$ lsof -p 1234 | wc -l# 统计进程打开的文件数

24. fuser - 文件使用者

功能:显示使用指定文件或文件系统的进程

语法

fuser [选项] 文件/目录

常用选项

  • • -v:详细模式
  • • -m:显示使用文件系统的所有进程
  • • -k:终止使用文件的进程
  • • -i:交互式终止

实战案例

# 案例1:查看文件使用者$ fuser /var/lib/mysql/ibdata1/var/lib/mysql/ibdata1: 1234# 案例2:详细信息$ fuser -v /var/lib/mysql/ibdata1                     USER        PID ACCESS COMMAND/var/lib/mysql/ibdata1:                     mysql      1234 F.... mysqld# 案例3:查看文件系统使用者$ fuser -m /data/data:                1234c  5678c  9012c# 案例4:终止使用文件的进程$ fuser -k /var/lib/mysql/ibdata1# 案例5:交互式终止$ fuser -ki /var/lib/mysql/ibdata1

故障排查场景

# 场景1:无法卸载文件系统$ fuser -m /data# 查看哪些进程在使用$ fuser -km /data# 终止所有使用该文件系统的进程# 场景2:文件被锁定$ fuser -v /path/to/file# 查看哪个进程锁定了文件

25. find - 文件查找

功能:在目录树中查找文件

语法

find [路径] [选项] [表达式]

常用选项

  • • -name:按名称查找
  • • -type:按类型查找(f文件/d目录)
  • • -size:按大小查找
  • • -mtime:按修改时间查找
  • • -user:按用户查找
  • • -perm:按权限查找
  • • -exec:对结果执行命令

实战案例

# 案例1:按名称查找$ find /data -name "*.log"# 案例2:查找大文件$ find /data -type f -size +1G# 案例3:查找最近修改的文件$ find /data -type f -mtime -1# 最近1天修改的文件# 案例4:查找并删除$ find /data -name "*.tmp" -delete# 案例5:查找并执行$ find /data -name "*.log" -mtime +30 -execrm {} \;# 删除30天前的日志# 案例6:查找空文件$ find /data -type f -empty# 案例7:按权限查找$ find /data -perm 777# 案例8:按用户查找$ find /data -user mysql

故障排查场景

# 场景1:磁盘满,找大文件$ find / -type f -size +1G -execls -lh {} \; 2>/dev/null# 场景2:清理临时文件$ find /tmp -type f -mtime +7 -delete# 场景3:查找最近修改的配置$ find /etc -type f -mtime -1# 场景4:权限问题$ find /data -type f ! -perm 644# 查找权限不是644的文件

26-30. 文件系统其他命令(快速版)

26. locate - 快速查找

# 更新数据库$ updatedb# 查找文件$ locate nginx.conf# 忽略大小写$ locate -i NGINX.CONF

27. stat - 文件状态

# 查看文件详细信息stat /etc/passwd  File: /etc/passwd  Size: 2345          Blocks: 8          IO Block: 4096   regular fileDevice: 801h/2049d    Inode: 123456      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2024-01-01 10:00:00.000000000 +0800Modify: 2024-01-01 09:00:00.000000000 +0800Change: 2024-01-01 09:00:00.000000000 +0800

28. file - 文件类型

# 识别文件类型$ file /bin/ls/bin/ls: ELF 64-bit LSB executable$ file image.jpgimage.jpg: JPEG image data$ file script.shscript.sh: Bourne-Again shell script, ASCII text executable

29. mount - 挂载信息

# 查看挂载$ mount/dev/sda1 on / type ext4 (rw,relatime)/dev/sda2 on /data type xfs (rw,relatime)# 挂载文件系统$ mount /dev/sdb1 /mnt# 卸载$ umount /mnt

30. lsblk - 块设备

# 查看块设备$ lsblkNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda      8:0    0  100G  0 disk├─sda1   8:1    0   50G  0 part /└─sda2   8:2    0   50G  0 part /datasdb      8:16   0  500G  0 disk└─sdb1   8:17   0  500G  0 part /backup

四、网络诊断(10个命令)

31. ping - 连通性测试

功能:测试网络连通性和延迟

语法

ping [选项] 目标

实战案例

# 案例1:基础测试$ ping -c 4 192.168.1.1PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.234 ms64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.345 ms64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.456 ms64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.567 ms--- 192.168.1.1 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3005msrtt min/avg/max/mdev = 0.234/0.400/0.567/0.134 ms# 案例2:大包测试MTU$ ping -c 10 -s 1472 192.168.1.1# 案例3:快速测试$ ping -c 100 -i 0.2 192.168.1.1

故障排查

# 网络不通$ ping 192.168.1.1  # 测试网关$ ping 8.8.8.8      # 测试外网$ ping www.baidu.com # 测试DNS# 丢包率高$ ping -c 100 192.168.1.1# 查看packet loss百分比# 延迟高$ ping 192.168.1.1# 查看time值

32. traceroute/tracepath - 路由追踪

功能:追踪数据包到达目标的路径

语法

traceroute [选项] 目标tracepath 目标

实战案例

# 案例1:追踪路由$ traceroute 8.8.8.8traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1  192.168.1.1 (192.168.1.1)  0.567 ms  0.456 ms  0.345 ms 2  10.0.0.1 (10.0.0.1)  2.345 ms  2.234 ms  2.123 ms 3  61.144.1.1 (61.144.1.1)  5.678 ms  5.567 ms  5.456 ms 4  202.97.1.1 (202.97.1.1)  12.345 ms  12.234 ms  12.123 ms 5  8.8.8.8 (8.8.8.8)  15.678 ms  15.567 ms  15.456 ms# 案例2:使用tracepath(不需root)$ tracepath 8.8.8.8

故障排查

# 网络慢$ traceroute 目标IP# 查看哪一跳延迟高# 网络不通$ traceroute 目标IP# 查看在哪一跳中断

33. mtr - 网络诊断

功能:结合ping和traceroute的网络诊断工具

语法

mtr [选项] 目标

实战案例

# 案例1:交互式诊断$ mtr 8.8.8.8                             My traceroute  [v0.92]server1 (192.168.1.100)                                    2024-01-01T15:30:15+0800Keys:  Help   Display mode   Restart statistics   Order of fields   quit                                       Packets               Pings Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev 1. 192.168.1.1                       0.0%    10    0.5   0.6   0.4   1.2   0.2 2. 10.0.0.1                          0.0%    10    2.3   2.5   2.1   3.4   0.4 3. 8.8.8.8                           0.0%    10   15.6  15.8  15.2  17.3   0.7# 案例2:报告模式$ mtr -r -c 100 8.8.8.8

故障排查

# 网络质量差$ mtr -r -c 100 目标IP# 查看Loss%和StDev(抖动)# 定位问题节点$ mtr 目标IP# 找出Loss%高或延迟突增的跳

34. nslookup/dig/host - DNS查询

功能:DNS查询工具

语法

nslookup 域名dig 域名host 域名

实战案例

# 案例1:nslookup查询$ nslookup www.baidu.comServer:        192.168.1.1Address:    192.168.1.1#53Non-authoritative answer:Name:    www.baidu.comAddress: 14.215.177.38Name:    www.baidu.comAddress: 14.215.177.39# 案例2:dig查询$ dig www.baidu.com; <<>> DiG 9.16.1 <<>> www.baidu.com;; ANSWER SECTION:www.baidu.com.        300    IN    A    14.215.177.38www.baidu.com.        300    IN    A    14.215.177.39# 案例3:host查询$ host www.baidu.comwww.baidu.com has address 14.215.177.38www.baidu.com has address 14.215.177.39# 案例4:反向查询$ dig -x 8.8.8.8# 案例5:指定DNS服务器$ dig @8.8.8.8 www.baidu.com

故障排查

# DNS解析失败$ nslookup www.example.com# 检查是否能解析# DNS服务器问题$ dig @8.8.8.8 www.example.com$ dig @114.114.114.114 www.example.com# 对比不同DNS服务器的结果# 查看DNS缓存$ dig www.example.com# 查看TTL值

35. netstat/ss - 网络连接

功能:显示网络连接、路由表、接口统计

语法

netstat [选项]ss [选项]

实战案例

# 案例1:查看所有TCP连接$ netstat -ant$ ss -ant# 案例2:查看监听端口$ netstat -tlnp$ ss -tlnp# 案例3:统计连接状态$ netstat -ant | awk '{print $6}' | sort | uniq -c | sort -rn    234 ESTABLISHED     45 TIME_WAIT     12 LISTEN# 案例4:查看特定端口$ netstat -ant | grep :3306$ ss -ant | grep :3306# 案例5:查看路由表$ netstat -rn$ ip route

故障排查

# 端口未监听$ ss -tlnp | grep :80# 检查服务是否启动# 连接数过多$ ss -ant | grep ESTABLISHED | wc -l# TIME_WAIT过多$ ss -ant | grep TIME_WAIT | wc -l# 找出连接最多的IP$ netstat -ant | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10

36-40. 网络其他命令(快速版)

36. ip - 网络配置

# 查看IP地址$ ip addr show# 查看路由$ ip route show# 添加IP$ ip addr add 192.168.1.100/24 dev eth0# 启用网卡$ ip linkset eth0 up

37. route - 路由表

# 查看路由表$ route -n# 添加路由$ route add -net 192.168.2.0/24 gw 192.168.1.1# 删除路由$ route del -net 192.168.2.0/24

38. arp - ARP缓存

# 查看ARP缓存$ arp -nAddress                  HWtype  HWaddress           Flags Mask            Iface192.168.1.1              ether   00:11:22:33:44:55   C                     eth0# 删除ARP条目$ arp -d 192.168.1.1

39. tcpdump - 抓包

# 抓包$ tcpdump -i eth0 -w capture.pcap# 抓特定端口$ tcpdump -i eth0 port 80# 抓特定主机$ tcpdump -i eth0 host 192.168.1.100# 显示内容$ tcpdump -i eth0 -A port 80

40. nc (netcat) - 网络工具

# 测试端口$ nc -zv 192.168.1.100 80Connection to 192.168.1.100 80 port [tcp/http] succeeded!# 监听端口$ nc -l 8080# 传输文件# 接收端$ nc -l 8080 > file.tar.gz# 发送端$ nc 192.168.1.100 8080 < file.tar.gz

五、日志分析(10个命令)

41. tail - 查看文件尾部

功能:显示文件的最后几行

语法

tail [选项] 文件

常用选项

  • • -n N:显示最后N行
  • • -f:实时跟踪文件
  • • -F:跟踪文件名(文件轮转后继续跟踪)
  • • -c N:显示最后N字节

实战案例

# 案例1:查看最后10行tail /var/log/syslog# 案例2:查看最后50行tail -n 50 /var/log/nginx/access.log# 案例3:实时跟踪tail -f /var/log/mysql/error.log# 案例4:跟踪多个文件tail -f /var/log/nginx/*.log# 案例5:从第100行开始显示tail -n +100 /var/log/syslog

故障排查

# 查看最新错误tail -n 100 /var/log/syslog | grep -i error# 实时监控日志tail -f /var/log/nginx/error.log# 查看服务启动日志tail -n 50 /var/log/mysql/error.log

42. head - 查看文件头部

# 查看前10行head /var/log/syslog# 查看前50行head -n 50 /var/log/nginx/access.log# 查看前1000字节head -c 1000 file.log

43. less/more - 分页查看

# 分页查看$ less /var/log/syslog# 空格:下一页# b:上一页# /pattern:搜索# n:下一个匹配# q:退出# more(简单版)$ more /var/log/syslog

44. grep - 文本搜索

功能:在文件中搜索匹配的行

语法

grep [选项] 模式 文件

常用选项

  • • -i:忽略大小写
  • • -v:反向匹配
  • • -n:显示行号
  • • -c:统计匹配行数
  • • -A N:显示匹配行及后N行
  • • -B N:显示匹配行及前N行
  • • -C N:显示匹配行及前后N行
  • • -r:递归搜索
  • • -E:扩展正则表达式

实战案例

# 案例1:搜索错误$ grep -i error /var/log/syslog# 案例2:显示行号$ grep -n "Connection refused" /var/log/nginx/error.log# 案例3:显示上下文$ grep -C 5 "Out of memory" /var/log/syslog# 案例4:统计错误数$ grep -c "ERROR" /var/log/app.log# 案例5:递归搜索$ grep -r "database connection failed" /var/log/# 案例6:多个模式$ grep -E "error|warning|critical" /var/log/syslog# 案例7:排除匹配$ grep -v "DEBUG" /var/log/app.log

故障排查

# 查找错误$ grep -i "error\|fail\|critical" /var/log/syslog# 查找特定时间的日志$ grep "Jan  1 15:" /var/log/syslog# 查找IP$ grep "192.168.1.100" /var/log/nginx/access.log# 统计错误类型$ grep -i error /var/log/app.log | awk '{print $5}' | sort | uniq -c | sort -rn

45-50. 日志分析其他命令(快速版)

45. awk - 文本处理

# 提取列$ awk '{print $1, $4}' /var/log/nginx/access.log# 条件过滤$ awk '$9 == 404' /var/log/nginx/access.log# 统计$ awk '{sum+=$10} END {print sum}' /var/log/nginx/access.log

46. sed - 文本编辑

# 替换$ sed 's/old/new/g' file.log# 删除行$ sed '/pattern/d' file.log# 提取行$ sed -n '10,20p' file.log

47. cut - 列提取

# 提取字段cut -d' ' -f1,4 /var/log/nginx/access.log# 提取字符cut -c1-10 file.log

48. sort - 排序

# 排序sort file.log# 数字排序sort -n file.log# 反向排序sort -r file.log# 按列排序sort -k2 -n file.log

49. uniq - 去重

# 去重sort file.log | uniq# 统计重复sort file.log | uniq -c# 只显示重复的sort file.log | uniq -d

50. wc - 统计

# 统计行数wc -l /var/log/syslog# 统计单词数wc -w file.txt# 统计字节数wc -c file.txt

六、系统调试(10个命令)

51. strace - 系统调用追踪

功能:追踪进程的系统调用和信号

语法

strace [选项] 命令strace [选项] -p PID

常用选项

  • • -p PID:追踪已运行的进程
  • • -f:追踪子进程
  • • -e SYSCALL:只追踪指定系统调用
  • • -c:统计系统调用
  • • -t:显示时间戳
  • • -o FILE:输出到文件

实战案例

# 案例1:追踪命令$ strace lsexecve("/bin/ls", ["ls"], 0x7ffd...) = 0open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3...# 案例2:追踪进程$ strace -p 1234select(6, [3 4 5], NULL, NULL, {tv_sec=1, tv_usec=0}) = 1 (in [3], left {tv_sec=0, tv_usec=999123})read(3, "GET / HTTP/1.1\r\n", 8192) = 16...# 案例3:只追踪文件操作$ strace -e open,read,write ls# 案例4:统计系统调用$ strace -c lstime     seconds  usecs/call     calls    errors syscall------ ----------- ----------- --------- --------- ---------------- 45.23    0.000123           5        25           read 23.45    0.000064           4        16           write 12.34    0.000034           3        11           open...# 案例5:追踪网络调用$ strace -e socket,connect,send,recv -p 1234

故障排查

# 程序启动失败$ strace ./program 2>&1 | grep -i "error\|fail"# 程序卡住$ strace -p 1234# 查看卡在哪个系统调用# 文件找不到$ strace -e open program 2>&1 | grep ENOENT# 性能问题$ strace -c -p 1234# 统计系统调用耗时

52-60. 系统调试其他命令(快速版)

52. ltrace - 库函数追踪

# 追踪库函数调用$ ltrace ls# 追踪进程$ ltrace -p 1234# 统计$ ltrace -c program

53. gdb - 程序调试

# 调试程序$ gdb program# 调试core文件$ gdb program core# 附加到进程$ gdb -p 1234# 常用命令(gdb) run          # 运行(gdb) break main   # 设置断点(gdb) continue# 继续(gdb) backtrace    # 查看调用栈(gdb) print var    # 打印变量

54. ldd - 动态库依赖

# 查看程序依赖的库$ ldd /bin/ls    linux-vdso.so.1 (0x00007ffd...)    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f...)    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f...)    ...# 检查缺失的库$ ldd program | grep "not found"

55. nm - 符号表

# 查看符号表$ nm program# 只看函数$ nm -D /lib/x86_64-linux-gnu/libc.so.6 | grep printf

56. objdump - 对象文件分析

# 反汇编$ objdump -d program# 查看段信息$ objdump -h program# 查看符号表$ objdump -t program

57. readelf - ELF文件分析

# 查看ELF头$ readelf -h program# 查看段头$ readelf -S program# 查看符号表$ readelf -s program

58. strings - 提取字符串

# 提取可打印字符串$ strings program# 查找特定字符串$ strings program | grep "error"# 从二进制文件中提取配置$ strings /bin/program | grep "config"

59. hexdump - 十六进制查看

# 十六进制查看$ hexdump -C file# 只看前100字节$ hexdump -C -n 100 file

60. xxd - 十六进制编辑

# 十六进制查看$ xxd file# 转换回二进制$ xxd -r hexfile > binfile# 只看前100字节$ xxd -l 100 file

🔍 故障排查流程图

系统故障排查流程

系统故障    ↓1. 快速检查(30秒)   $ uptime          # 负载   $ df -h           # 磁盘   $ free -h         # 内存   $ top             # 进程    ↓2. 确定问题类型   ├─ CPU高 → 3.1   ├─ 内存不足 → 3.2   ├─ 磁盘满 → 3.3   ├─ 网络问题 → 3.4   └─ 服务异常 → 3.5    ↓3.1 CPU问题排查   $ top                              # 找出占用CPU的进程   $ ps aux --sort=-%cpu | head -10   # 确认进程   $ pidstat -u -p <pid> 1            # 查看进程CPU使用   $ perf top -p <pid>                # 分析热点函数   $ strace -c -p <pid>               # 系统调用统计    ↓3.2 内存问题排查   $ free -h                          # 查看内存使用   $ ps aux --sort=-%mem | head -10   # 找出占用内存的进程   $ pmap -x <pid>                    # 查看进程内存映射   $ smem -s pss -r | head -10        # 准确的内存占用   $ dmesg | grep -i "out of memory"  # 查看OOM    ↓3.3 磁盘问题排查   $ df -h                            # 查看磁盘空间   $ df -hi                           # 查看inode   $ du -h --max-depth=1 / | sort -rh # 找出大目录   $ lsof | grep deleted              # 查找已删除未释放的文件   $ find / -type f -size +1G         # 查找大文件    ↓3.4 网络问题排查   $ ping 网关                        # 测试本地网络   $ ping 8.8.8.8                     # 测试外网   $ ping 域名                        # 测试DNS   $ traceroute 目标                  # 追踪路由   $ mtr 目标                         # 综合诊断   $ ss -ant | grep ESTABLISHED       # 查看连接   $ netstat -s                       # 查看网络统计    ↓3.5 服务异常排查   $ systemctl status 服务名          # 查看服务状态   $ journalctl -u 服务名 -n 50       # 查看服务日志   $ ps aux | grep 服务名             # 确认进程   $ lsof -i :端口                    # 检查端口   $ strace -p <pid>                  # 追踪系统调用    ↓4. 解决问题   ├─ 重启服务   ├─ 清理资源   ├─ 调整配置   └─ 升级/降级    ↓5. 验证修复   $ 重复步骤1   $ 监控一段时间    ↓6. 记录文档   - 问题现象   - 排查过程   - 解决方案   - 预防措施

📊 常见故障速查表

1. 系统无响应

步骤
命令
说明
1
uptime
查看负载
2
top
查看进程
3
vmstat 1
查看IO等待
4
dmesg | tail
查看内核日志
5
journalctl -n 50
查看系统日志

常见原因

  • • CPU 100%:找出占用CPU的进程,优化或限制
  • • IO等待高:检查磁盘,使用iostat -x 1
  • • 内存不足:检查OOM,清理内存或增加swap
  • • 死锁:查看进程状态,使用ps aux \| grep D

2. 服务无法启动

步骤
命令
说明
1
systemctl status 服务
查看状态
2
journalctl -u 服务 -n 50
查看日志
3
ps aux | grep 服务
确认进程
4
lsof -i :端口
检查端口占用
5
strace 服务启动命令
追踪启动过程

常见原因

  • • 端口被占用:lsof -i :端口,终止占用进程
  • • 配置文件错误:检查配置文件语法
  • • 权限问题:检查文件权限和所有者
  • • 依赖缺失:ldd 程序,检查库依赖

3. 磁盘空间满

步骤
命令
说明
1
df -h
查看磁盘空间
2
df -hi
查看inode
3
du -h --max-depth=1 / | sort -rh
找大目录
4
lsof | grep deleted
找已删除未释放的文件
5
find / -type f -size +1G
找大文件

清理方案

# 清理日志$ find /var/log -name "*.log" -mtime +30 -delete$ journalctl --vacuum-time=7d# 清理临时文件$ find /tmp -type f -mtime +7 -delete# 清理包缓存$ yum clean all  # CentOS$ apt clean      # Ubuntu# 恢复已删除未释放的文件$ lsof | grep deletedkill -9 <pid>  # 终止进程释放空间

4. 内存不足

步骤
命令
说明
1
free -h
查看内存
2
ps aux --sort=-%mem | head -10
找占用内存的进程
3
smem -s pss -r | head -10
准确内存占用
4
dmesg | grep -i oom
查看OOM
5
pmap -x <pid>
查看进程内存

解决方案

# 清理缓存(谨慎使用)echo 3 > /proc/sys/vm/drop_caches# 调整swappiness$ sysctl vm.swappiness=10# 重启占用内存的服务$ systemctl restart 服务# 增加swapddif=/dev/zero of=/swapfile bs=1M count=2048$ mkswap /swapfile$ swapon /swapfile

5. 网络不通

步骤
命令
说明
1
ping 网关
测试本地网络
2
ping 8.8.8.8
测试外网
3
ping 域名
测试DNS
4
ip addr
查看IP配置
5
ip route
查看路由

排查步骤

# 1. 检查网卡状态$ ip link show$ ethtool eth0# 2. 检查IP配置$ ip addr show eth0# 3. 检查路由$ ip route show# 4. 检查DNScat /etc/resolv.conf$ nslookup www.baidu.com# 5. 检查防火墙$ iptables -L -n$ firewall-cmd --list-all# 6. 追踪路由$ traceroute 目标IP$ mtr 目标IP

6. 进程僵尸

步骤
命令
说明
1
ps aux | grep Z
查找僵尸进程
2
ps -eo pid,ppid,stat,cmd | grep Z
查看父进程
3
pstree -p -s <pid>
查看进程树
4
kill -9 <ppid>
终止父进程

说明

  • • 僵尸进程本身无法被杀死
  • • 需要终止其父进程
  • • 或者等待父进程调用wait()

7. CPU 100%

步骤
命令
说明
1
top
找出占用CPU的进程
2
ps aux --sort=-%cpu | head -10
确认进程
3
top -H -p <pid>
查看线程
4
perf top -p <pid>
分析热点
5
strace -c -p <pid>
系统调用统计

解决方案

# 1. 优化程序# 2. 限制CPU使用$ cpulimit -p <pid> -l 50  # 限制为50%# 3. 调整优先级$ renice 19 -p <pid>  # 降低优先级# 4. 重启服务$ systemctl restart 服务

8. 端口被占用

步骤
命令
说明
1
lsof -i :端口
查看占用进程
2
ss -tlnp | grep :端口
确认进程
3
ps aux | grep <pid>
查看进程详情
4
kill <pid>
终止进程

示例

# 80端口被占用$ lsof -i :80COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEnginx   1234 root    6u  IPv4  12345      0t0  TCP *:http (LISTEN)# 终止进程kill 1234# 或$ systemctl stop nginx

9. 日志分析技巧

查找错误

# 查找所有错误$ grep -i "error\|fail\|critical" /var/log/syslog# 查找特定时间的错误$ grep "Jan  1 15:" /var/log/syslog | grep -i error# 统计错误类型$ grep -i error /var/log/app.log | awk '{print $5}' | sort | uniq -c | sort -rn# 查找最近的错误tail -n 1000 /var/log/syslog | grep -i error

分析访问日志

# 统计访问最多的IP$ awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10# 统计状态码$ awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn# 统计访问最多的URL$ awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10# 统计流量$ awk '{sum+=$10} END {print sum/1024/1024 " MB"}' /var/log/nginx/access.log

10. 性能问题排查

CPU性能

uptime# 查看负载$ top                                 # 实时监控$ ps aux --sort=-%cpu | head -10      # CPU占用排序$ pidstat -u 1                        # 进程CPU统计$ perf top                            # 热点函数

内存性能

$ free -h                             # 内存使用$ ps aux --sort=-%mem | head -10      # 内存占用排序$ smem -s pss -r | head -10           # 准确内存统计$ vmstat 1                            # 虚拟内存统计$ slabtop                             # slab缓存

磁盘性能

$ iostat -x 1                         # IO统计$ iotop -o                            # IO监控df -h                               # 磁盘空间du -h --max-depth=1 / | sort -rh    # 目录大小

网络性能

$ ss -s                               # 连接统计$ iftop -i eth0                       # 流量监控$ nethogs eth0                        # 进程流量$ ping 目标                           # 延迟测试$ mtr 目标                            # 综合诊断

💡 故障排查最佳实践

1. 排查原则

快速定位

  • • 先整体后局部
  • • 先简单后复杂
  • • 先日志后代码
  • • 先现象后原因

系统方法

1. 收集信息(现象、日志、监控)2. 分析原因(排除法、对比法)3. 提出假设(可能的原因)4. 验证假设(测试、实验)5. 解决问题(修复、优化)6. 验证修复(测试、监控)7. 记录文档(问题、方案)

2. 常用组合命令

快速检查

# 一键检查系统状态echo"=== 负载 ===" && uptime && \echo"=== 磁盘 ===" && df -h && \echo"=== 内存 ===" && free -h && \echo"=== 进程 ===" && ps aux --sort=-%cpu | head -5

日志分析

# 查找最近的错误tail -n 1000 /var/log/syslog | grep -i "error\|fail\|critical" | tail -20# 统计错误频率$ grep -i error /var/log/app.log | awk '{print $1, $2}' | uniq -c | tail -20

网络诊断

# 综合网络检查$ ping -c 4 网关 && ping -c 4 8.8.8.8 && nslookup www.baidu.com

3. 应急处理

服务异常

# 1. 查看状态$ systemctl status 服务# 2. 查看日志$ journalctl -u 服务 -n 50# 3. 重启服务$ systemctl restart 服务# 4. 验证$ systemctl status 服务

系统卡顿

# 1. 查看负载uptime# 2. 查看进程$ top# 3. 查看IO$ iostat -x 1# 4. 查看内存$ free -h# 5. 查看日志$ dmesg | tail

磁盘满

# 1. 查看空间df -h# 2. 找大目录du -h --max-depth=1 / | sort -rh | head -10# 3. 清理日志$ find /var/log -name "*.log" -mtime +30 -delete# 4. 清理临时文件$ find /tmp -type f -mtime +7 -delete# 5. 验证df -h

🎓 学习路径

初级(必须掌握)

系统检查

  • • uptime, uname, hostname, date
  • • df, du, free
  • • ps, top, kill

日志分析

  • • tail, head, grep
  • • less, more

网络基础

  • • ping, netstat/ss
  • • ip, route

中级(建议掌握)

进程管理

  • • pstree, pgrep, pkill
  • • nice, renice
  • • screen, tmux

文件系统

  • • lsof, fuser, find
  • • stat, file, mount

网络诊断

  • • traceroute, mtr
  • • dig, nslookup
  • • tcpdump

高级(深入学习)

系统调试

  • • strace, ltrace
  • • gdb, perf
  • • ldd, nm

日志处理

  • • awk, sed
  • • sort, uniq, wc

综合分析

  • • journalctl
  • • dmesg
  • • systemctl

📚 推荐资源

书籍

  1. 1. 《Linux故障排查手册》
  2. 2. 《性能之巅》- Brendan Gregg
  3. 3. 《Linux系统管理技术手册》

在线资源

  1. 1. Linux命令大全:man.linuxde.net
  2. 2. 故障排查指南:www.brendangregg.com
  3. 3. 系统管理博客:www.cyberciti.biz

工具集合

  1. 1. sysstat:系统性能监控工具集
  2. 2. bcc-tools:eBPF性能分析工具
  3. 3. perf-tools:性能分析脚本集

🎉 总结

这60个命令覆盖了Linux故障排查的方方面面:

✅ 系统状态检查(10个)✅ 进程管理(10个)✅ 文件系统检查(10个)✅ 网络诊断(10个)✅ 日志分析(10个)✅ 系统调试(10个)


觉得有用?点个赞👍,转发给更多需要的人!

#Linux #故障排查 #运维 #技术干货

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 09:33:48 HTTP/2.0 GET : https://f.mffb.com.cn/a/487803.html
  2. 运行时间 : 0.148027s [ 吞吐率:6.76req/s ] 内存消耗:5,159.77kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2ed1b8cffdc60c6f3fbbd91b3f7cae2e
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000668s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000801s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000354s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000277s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000584s ]
  6. SELECT * FROM `set` [ RunTime:0.000261s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000612s ]
  8. SELECT * FROM `article` WHERE `id` = 487803 LIMIT 1 [ RunTime:0.000719s ]
  9. UPDATE `article` SET `lasttime` = 1783128828 WHERE `id` = 487803 [ RunTime:0.034025s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000485s ]
  11. SELECT * FROM `article` WHERE `id` < 487803 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000636s ]
  12. SELECT * FROM `article` WHERE `id` > 487803 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000716s ]
  13. SELECT * FROM `article` WHERE `id` < 487803 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001321s ]
  14. SELECT * FROM `article` WHERE `id` < 487803 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001916s ]
  15. SELECT * FROM `article` WHERE `id` < 487803 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002460s ]
0.149593s