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 地址等信息,帮助管理员定位网络问题。


相关文章
|
5天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
22 3
|
5天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
17 2
|
5天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
23 3
|
8天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
33 6
|
9天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
22 7
|
10天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
39 7
|
9天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
23 4
|
8天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
11 2
|
9天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
27 3
|
10天前
|
Linux Shell
Linux常用命令-1
本课程要求学生熟悉Linux系统终端窗口和命令基础,掌握文件目录类、系统信息类、进程管理类及其他常用命令,学时为3-6小时。课程内容涵盖Linux命令的特点、常见命令的使用方法及其应用场景,如文件浏览、目录切换、内容显示等。建议学生逐个操作命令并及时反馈问题。
40 5