运维工程师常用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`** - **用途**:基于终端的实时流量监视工具,可查看每个进程的流量情况。 - **特点**:适合查找占用网络带宽的进程。

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

最新发表

友情链接