Linux系统监控利器:探索常用命令及数据保存技巧

简介: Linux系统监控利器:探索常用命令及数据保存技巧

top

显示系统中各个进程的实时信息,包括 CPU 使用率、内存占用情况等

  1. 启动 top: 在终端中输入 top 命令即可启动 top。默认情况下,它会以交互式界面显示系统的实时进程信息和性能指标。
  2. 实时更新: top 默认情况下每隔 3 秒刷新一次显示内容,您可以按 d 键来更改刷新间隔。
  3. 显示进程信息: top 显示了各个进程的 PID、用户、CPU 占用、内存占用、进程状态等信息。您可以按 k 键来杀死选定的进程。
  4. CPU 和内存信息: top 的顶部显示了 CPU 使用率、内存使用情况等系统级别的性能指标。
  5. 进程排序: 您可以按 P 键按 CPU 使用率排序进程列表,按 M 键按内存使用量排序。
  6. 进程筛选: 您可以按 u 键来筛选显示特定用户的进程,按 o 键来设置筛选条件。
  7. 显示线程: 按 H 键可切换显示线程信息,这对于查看多线程应用程序的详细信息很有帮助。
  8. 保存配置: 在 top 中进行排序、筛选等操作后,可以按 W 键将当前配置保存到文件以便以后使用。
  9. 查看帮助: 您可以按 h 键来查看 top 命令的帮助文档,了解更多可用的快捷键和操作方式。
  10. 退出 top: 按下 q 键即可退出 top。

htop

类似于 top,但提供了更加友好的交互界面,可以方便地浏览和管理进程。

htop 是一个交互式的系统监控工具,提供了实时的对系统资源利用情况的监控和管理。以下是 htop 的日常用法以及一些相关知识点:

  1. 基本用法
  • 在终端中输入 htop 即可启动 htop。启动后,你会看到一个以颜色区分的实时监控界面,显示了 CPU、内存、进程等系统资源的利用情况。
  1. 界面解释
  • CPU 利用率:显示各个核心的利用率,以及整体的系统负载情况。
  • 内存利用率:显示内存的使用情况,包括已使用、缓存、剩余等信息。
  • 进程列表:列出了当前运行的进程,并可以按照 CPU、内存等指标进行排序。
  • 快捷键指令:底部显示了常用的快捷键指令,方便进行操作和切换视图。
  1. 交互操作
  • 使用方向键可以在进程列表中上下移动,使用 Enter 键可以查看选中进程的详细信息。
  • 可以使用 F2 来进入设置界面,可以自定义显示的内容和样式。
  • 在进程列表中使用 F9 可以发送信号给选中的进程,比如终止、重新加载等。
  • 使用 F10 可以退出 htop。
  1. 过滤和排序
  • 可以使用 F4 来进行过滤,根据特定的条件来筛选显示的进程。
  • 通过按下 Shift+M 可以按照内存利用率进行排序,按下 Shift+P 可以按照 CPU 利用率进行排序。
  1. 颜色标识
  • htop 使用不同的颜色来表示不同的进程状态,比如运行中的进程、睡眠中的进程、僵死的进程等。
  1. 其他功能
  • 支持在 htop 中进行进程的搜索、查看进程树、显示进程的环境变量等功能。
  • 可以通过配置文件进行自定义设置,比如默认显示的列、颜色主题等。

vmstat

vmstat 是一个用于报告虚拟内存统计信息的命令行工具,通常用于监控系统的内存、进程、IO 等性能指标。下面是 vmstat 命令的基本用法和一些常用参数:

  1. 基本用法
  • 在终端中输入 vmstat 即可显示当前系统的虚拟内存统计信息。默认情况下,它会每秒刷新一次数据。
  1. 常用参数
  • -a:显示活跃与非活跃的内存页面信息。
  • -n:用于设置输出中缺页中断和内存交换区的名称。
  • -s:显示内存使用情况摘要。
  • -d:显示磁盘活动情况。
  • -w:以宽格式输出信息。
  • -t:显示时间戳。

示例:

vmstat -s -S M  # 显示内存使用情况摘要,显示单位为 MB,默认为 KB
vmstat -d  # 显示磁盘活动情况
vmstat -wt 5  # 以宽格式显示信息,并每 5 秒刷新一次(可以自定义刷新频率)
• 1
• 2
• 3

输出解释

  • procs: 进程相关信息
  • r: 正在运行或等待 CPU 的进程数
  • b: 不可中断的睡眠状态的进程数
  • memory: 内存使用情况
  • swpd: 使用的虚拟内存(swap)
  • free: 空闲内存
  • buff: 用作缓冲的内存量
  • cache: 用作缓存的内存量
  • swap: 交换空间(swap)使用情况
  • si: 每秒从磁盘读入交换页的大小
  • so: 每秒写入磁盘的交换页的大小
  • io: 磁盘 I/O 情况
  • bi: 每秒从块设备接收的块数量
  • bo: 每秒发送到块设备的块数量
  • system: 系统相关信息
  • in: 每秒中断的数量
  • cs: 每秒上下文切换的数量
  • cpu: CPU 使用情况
  • us: 用户空间占用 CPU 时间的百分比
  • sy: 内核空间占用 CPU 时间的百分比
  • id: 空闲 CPU 时间的百分比
  • wa: 等待输入输出的 CPU 时间的百分比
  • st: 虚拟化环境中用来偷取时间的 CPU 时间百分比

cs 表示上下文切换的次数,我们可以通过这个工具来查看系统上下文切换的次数。

free

free 是一个用于显示系统内存使用情况的命令行工具。以下是 free 命令的日常用法以及相关知识点:

  1. 基本用法
  • 在终端中输入 free 即可显示系统当前的内存使用情况。默认情况下,free 会显示以 KB 为单位的内存使用量。
  1. 常用参数
  • -h:以人类可读的形式(如 GB、MB)显示内存使用情况。
  • -b:以字节(bytes)为单位显示内存使用量。
  • -s <秒数>:指定刷新间隔,比如 free -s 5 表示每 5 秒刷新一次数据。

示例:

free -h  # 以人类可读的形式显示内存使用情况
free -b  # 显示内存使用量以字节为单位
free -s 5  # 每 5 秒刷新一次内存使用情况
  1. 输出解释
  • total:总内存量,表示系统总共可用的内存大小。
  • used:已使用的内存量,表示当前系统已经被占用的内存大小。
  • free:空闲内存量,表示当前系统未被使用的内存大小。
  • shared:共享内存量,表示多个进程共享的内存大小。
  • buffers:缓存的内存量,表示用于缓存数据的内存大小。
  • cached:缓存的内存量,表示用于缓存文件系统数据的内存大小。
  1. 内存单位
  • KB:千字节(Kilobyte),1 KB = 1024 字节。
  • MB:兆字节(Megabyte),1 MB = 1024 KB。
  • GB:吉字节(Gigabyte),1 GB = 1024 MB。
  • TB:太字节(Terabyte),1 TB = 1024 GB。
  1. 使用场景
  • 通过 free 可以快速了解系统当前的内存使用情况,包括已使用、空闲等数据。
  • 可以帮助监控系统的内存状况,及时发现内存不足或内存泄漏等问题。
  • 结合其他命令如 tophtop 等,可以全面监控系统资源的使用情况。

df

当使用 df 命令时,您可以通过以下常见的用法和知识点来更好地理解和利用它:

  1. 基本用法: 在终端中输入 df 命令即可显示文件系统的磁盘空间使用情况。默认情况下,它会列出所有已挂载的文件系统的信息。
  2. 显示详细信息: 可以使用 -h 选项以人类可读的方式显示磁盘空间大小,以便更容易理解。
  3. 指定文件系统: 如果您只想查看特定文件系统的信息,可以在 df 命令后面加上文件系统的路径或名称。
  4. 显示 inode 信息: 使用 -i 选项可以显示文件系统的 inode 使用情况,这对于检查文件系统是否已经满了很有帮助。
  5. 只显示本地文件系统: 使用 -l 选项只显示本地文件系统的信息,不包括 NFS、SMB 等远程文件系统。
  6. 以特定文件系统类型显示: 您可以使用 -t 选项指定要显示的文件系统类型,比如 df -t ext4 只显示 ext4 类型的文件系统。
  7. 显示总体使用情况: df -h --total 可以显示所有文件系统的总使用情况,包括总容量、已用空间、可用空间等。
  8. 显示文件系统容量百分比: 使用 df -hT 可以显示文件系统的类型,并且显示每个文件系统使用的百分比。
  9. 定期监控: 您可以将 df 命令和一些选项与定时任务结合起来,定期监控磁盘空间的使用情况,及时采取措施避免磁盘空间不足导致的问题。

uptime

uptime 命令用于显示系统的运行时间以及平均负载信息。以下是关于 uptime 命令的日常用法以及相关知识点:

  1. 基本用法
  • 在终端中输入 uptime 即可显示系统的当前运行时间、当前登录用户数以及系统的平均负载。
  1. 输出解释
  • 当前时间:显示当前系统时间。
  • 系统运行时间:显示系统自上次启动以来的运行时间。
  • 登录用户数:显示当前登录到系统的用户数量。
  • 平均负载:包括系统在过去 1 分钟、5 分钟和15 分钟内的平均负载情况。
  1. 平均负载解释
  • 平均负载是指系统处于等待 CPU 或其他资源的进程数的平均值。
  • 通常情况下,平均负载小于 CPU 核心数比较合理。超过 CPU 核心数可能表示系统负载过重。
  • 1 分钟、5 分钟、15 分钟内的平均负载可以帮助你了解系统负载的变化趋势。
  1. 使用场景
  • 可以通过 uptime 查看系统的运行时间,判断系统是否需要重启或已经运行了多长时间。
  • 了解系统的平均负载情况,帮助排查系统负载高的原因。
  • 当系统负载异常时,可以及时发现并采取相应的措施进行优化。
  1. 负载理解
  • 负载小于 1 表示系统轻松处理所有任务。
  • 负载大于 1 但小于 CPU 核心数表示系统可能在繁忙状态。
  • 负载高于 CPU 核心数可能导致系统响应变慢,需要及时处理。

netstat

netstat 是一个用于显示网络连接、路由表和网络接口信息的命令行工具。以下是关于 netstat 命令的日常用法以及相关知识点:

  1. 基本用法
  • 在终端中输入 netstat 即可显示系统的网络连接信息。
  • 使用 netstat -a 可以显示所有的连接和监听端口。
  • 使用 netstat -t 可以显示 TCP 协议相关的连接信息。
  • 使用 netstat -u 可以显示 UDP 协议相关的连接信息。
  • 使用 netstat -n 可以显示数字格式的 IP 地址和端口号。
  1. 输出解释
  • Proto:显示连接的协议类型,如 TCP 或 UDP。
  • Recv-Q:表示接收队列中的字节数。
  • Send-Q:表示发送队列中的字节数。
  • Local Address:本地地址和端口号。
  • Foreign Address:远程地址和端口号。
  • State:连接状态,如 ESTABLISHED、LISTENING、TIME_WAIT 等。
  1. 使用场景
  • 通过 netstat 可以查看当前系统的网络连接情况,包括连接状态、本地地址、远程地址等信息。
  • 可以用于排查网络问题,如查找哪些进程占用了网络端口、查看连接的建立状态等。
  • 在网络故障排除过程中,netstat 是一个重要的工具,可以帮助管理员快速定位网络问题的根源。
  1. 常用参数
  • -a:显示所有连接和监听端口。
  • -t:仅显示 TCP 协议相关的连接信息。
  • -u:仅显示 UDP 协议相关的连接信息。
  • -n:以数字格式显示 IP 地址和端口号,而不进行 DNS 解析。
  1. 其他信息
  • netstat -r:显示系统的路由表信息。
  • netstat -i:显示网络接口信息,如接口名称、MTU、接收和发送数据包数量等。
  • netstat -s:显示网络统计信息,如接收和发送的数据包数量、错误包数量等。
  • netstat -p:显示与进程相关的网络连接信息。

netstat 命令的输出中,状态 State 表示网络连接的当前状态。这些状态反映了连接在网络通信过程中所处的不同阶段和状态,对于排查网络问题和监控网络连接非常重要。以下是常见的连接状态及其含义:

  1. ESTABLISHED:表示已经建立的连接状态,数据可以在两端的主机之间传输。通常在正常的网络通信中会看到该状态。
  2. LISTENING:表示一个进程正在等待其他主机发起连接。在服务器端程序中,通常会出现此状态,用于监听来自客户端的连接请求。
  3. TIME_WAIT:表示连接已经关闭,但仍然在等待一段时间(称为 TIME-WAIT 状态)以确保远程主机接收到最后的 ACK 包。这是 TCP 协议的一种设计,用于防止旧的数据包干扰新的连接。
  4. CLOSE_WAIT:表示本地应用程序已经关闭连接,但远程主机仍然保持连接打开状态。一般来说,应用程序应该尽快处理 CLOSE_WAIT 状态的连接,避免资源泄漏。
  5. FIN_WAIT:表示连接即将关闭,本地主机已经发送了连接终止请求,等待远程主机的确认。FIN_WAIT_1 和 FIN_WAIT_2 是 FIN_WAIT 状态的两个子状态,表示连接关闭过程中的不同阶段。
  6. SYN_SENTSYN_RECV:表示正在建立连接的过程中,分别表示本地主机发送 SYN 包和远程主机回应 SYN 包的状态。
  7. CLOSING:表示连接正在关闭的过程中,本地主机已经收到远程主机的关闭请求,但还未发送确认。
  8. LAST_ACK:表示连接即将关闭,本地主机发送了关闭请求后等待最后的确认 ACK。

ifconfig

ifconfig 是一个用于配置和显示系统网络接口信息的命令行工具,常见于类 Unix 系统中,如 Linux 和 macOS。下面是关于 ifconfig 命令的日常用法以及相关知识点:

  1. 基本用法
  • 在终端中输入 ifconfig 即可显示当前系统中所有网络接口的信息。
  • 使用 ifconfig 可以显示特定网络接口(如 eth0、wlan0 等)的详细信息。
  1. 常见输出信息
  • inet:显示 IPv4 地址。
  • inet6:显示 IPv6 地址。
  • netmask:显示子网掩码。
  • broadcast:显示广播地址。
  • hwaddrether:显示硬件地址(MAC 地址)。
  • RX packetsTX packets:显示接收和发送的数据包数量。
  • MTU:显示最大传输单元。
  • UPDOWN:显示接口是否启用或禁用。
  1. 常用参数
  • ifconfig  up:启用指定网络接口。
  • ifconfig  down:禁用指定网络接口。
  • ifconfig  :设置指定网络接口的 IP 地址。
  • ifconfig  promisc:将指定网络接口设置为混杂模式,使其能够接收所有经过它的数据包。
  1. 配置网络接口
  • 使用 ifconfig 命令可以临时配置网络接口的 IP 地址、子网掩码等信息。
  • 通过编辑网络配置文件,可以实现系统重启后网络接口信息的持久化配置。
  1. 其他补充
  • 在一些新的 Linux 发行版中,ifconfig 命令可能已被弃用,推荐使用 ip 命令来代替。
  • ifconfig 通常需要管理员权限才能执行,因为它涉及到网络接口的配置和管理。
  1. 配合网络故障排查
  • 在网络故障排除过程中,ifconfig 是一个重要的工具,可以用来查看各个网络接口的状态、IP 地址等信息,帮助管理员定位网络问题。


相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
107 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
377 6
|
20天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
49 14
Linux 10 个“who”命令示例
|
9天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
77 20
|
9天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
34 7
|
29天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
33 9
|
27天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
1月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
129 3
|
1月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
64 4
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
38 1