运维工程师常用Linux系统监控命令

好的,以下是中级运维工程师最常用且必须掌握的 Linux 系统监控命令,这些命令在日常工作中使用频率较高,能够帮助快速定位和解决问题。

### **系统性能监控**
1. **`top`**
- **用途**:动态显示系统资源使用情况,包括 CPU、内存、进程等。
- **常用选项**:
- `-b`:以批处理模式输出,适合脚本使用。
- `-n`:指定输出次数。
- **示例**:`top -bn1`(输出一次系统资源使用情况)。

2. **`htop`**
- **用途**:更直观的交互式进程查看器,支持颜色显示和交互操作。
- **特点**:比 `top` 更易于阅读,适合实时监控。

3. **`vmstat`**
- **用途**:报告关于进程、内存、分页、块IO、中断和CPU活动的概览。
- **常用选项**:
- `-n`:不显示标题。
- `-t`:显示时间戳。
- **示例**:`vmstat 2`(每 2 秒刷新一次)。

4. **`iostat`**
- **用途**:监控系统输入输出设备和CPU的使用情况。
- **常用选项**:
- `-x`:显示扩展的磁盘统计信息。
- `-c`:显示CPU使用情况。
- **示例**:`iostat -x 2`(每 2 秒刷新一次扩展信息)。

5. **`sar`**
- **用途**:收集、报告或保存系统活动信息(CPU、内存、磁盘、网络等)。
- **常用选项**:
- `-u`:报告CPU使用情况。
- `-r`:报告内存使用情况。
- `-n DEV`:报告网络设备的使用情况。
- **示例**:`sar -u`(报告CPU使用情况)。

### **网络监控**
1. **`netstat`**
- **用途**:查看网络连接状态、路由表信息等。
- **常用选项**:
- `-an`:显示所有网络连接。
- `-lnp`:显示监听端口及其进程。
- **示例**:`netstat -an`(显示所有网络连接)。

2. **`ss`**
- **用途**:更快速高效的网络连接状态查看工具,功能类似于 `netstat`。
- **常用选项**:
- `-an`:显示所有网络连接。
- `-t`:显示TCP连接。
- `-u`:显示UDP连接。
- **示例**:`ss -an`(显示所有网络连接)。

3. **`ping`**
- **用途**:测试网络连通性,统计响应时间。
- **常用选项**:
- `-c`:指定发送的回显请求次数。
- `-i`:指定发送间隔。
- **示例**:`ping -c 4 8.8.8.8`(发送4次ICMP请求到Google的DNS)。

4. **`traceroute`**
- **用途**:追踪数据包经过的路由节点,定位网络问题。
- **示例**:`traceroute 8.8.8.8`(追踪到Google DNS的路由)。

5. **`iftop`**
- **用途**:实时监视网络流量情况,显示各个接口的收发数据流量。
- **特点**:适合监控网络带宽使用情况。

### **进程监控**
1. **`ps`**
- **用途**:查看当前运行的进程及其资源使用情况。
- **常用选项**:
- `-ef`:显示所有进程的详细信息。
- `-aux`:以用户为中心显示进程信息。
- **示例**:`ps -ef | grep java`(查找所有Java进程)。

2. **`pstree`**
- **用途**:以树形结构显示进程之间的依赖关系。
- **示例**:`pstree -p`(显示进程树,并显示进程ID)。

### **磁盘监控**
1. **`df`**
- **用途**:查看文件系统的磁盘使用情况。
- **常用选项**:
- `-h`:以易读的格式显示磁盘使用情况。
- `-T`:显示文件系统类型。
- **示例**:`df -h`(以易读格式显示磁盘使用情况)。

2. **`du`**
- **用途**:查看目录或文件的磁盘使用情况。
- **常用选项**:
- `-sh`:以易读格式显示目录或文件的总大小。
- `-a`:显示目录中每个文件的大小。
- **示例**:`du -sh /var/log`(显示 `/var/log` 目录的总大小)。

### **日志监控**
1. **`grep`**
- **用途**:查找日志文件中的关键字,并可显示上下文内容。
- **常用选项**:
- `-C`:显示关键字行的上下文内容。
- `-i`:忽略大小写。
- **示例**:`grep -C 3 "ERROR" catalina.out`(查找包含“ERROR”的行及其上下文)。

2. **`tail`**
- **用途**:实时查看日志文件的最新内容。
- **常用选项**:
- `-f`:实时跟踪日志文件的更新。
- `-n`:显示文件的最后几行。
- **示例**:`tail -f /var/log/messages`(实时查看系统日志)。

3. **`journalctl`**
- **用途**:查看系统日志(适用于 systemd 系统)。
- **常用选项**:
- `-u`:查看特定服务的日志。
- `-b`:查看当前启动的日志。
- **示例**:`journalctl -u nginx.service`(查看 Nginx 服务的日志)。

### **其他工具**
1. **`htop`**
- **用途**:更直观的交互式进程查看器,支持颜色显示和交互操作。
- **特点**:比 `top` 更易于阅读,适合实时监控。

2. **`iftop`**
- **用途**:实时监视网络流量情况,显示各个接口的收发数据流量。
- **特点**:适合监控网络带宽使用情况。

3. **`nethogs`**
- **用途**:基于终端的实时流量监视工具,可查看每个进程的流量情况。
- **特点**:适合查找占用网络带宽的进程。

### **总结**
这些命令是中级运维工程师日常工作中最常用的工具,能够帮助快速定位和解决系统性能、网络、进程、磁盘和日志相关的问题。熟练掌握这些命令的使用方法和常用选项,可以大大提高工作效率。

posted @ 2025-04-17 21:03  沧海一粟95  阅读(36)  评论(0)    收藏  举报